pr-agent / scripts /export_db_to_excel.py
arasuezofis's picture
Initial ProcureMind Space
c79f732
Raw
History Blame Contribute Delete
1.26 kB
"""Export commodities and commodity_form_schemas tables to Excel."""
from __future__ import annotations
import os
import sqlite3
from pathlib import Path
import pandas as pd
from dotenv import load_dotenv
ROOT = Path(__file__).resolve().parents[1]
load_dotenv(ROOT / ".env")
DB_PATH = Path(os.environ.get("UNSPSC_DB_PATH", ROOT / "data" / "unspsc.db"))
OUT_DIR = ROOT / "data"
COMMODITY_XLSX = OUT_DIR / "commodity.xlsx"
FORM_SCHEMA_XLSX = OUT_DIR / "commodity form schema.xlsx"
def main() -> None:
if not DB_PATH.exists():
raise FileNotFoundError(f"Database not found: {DB_PATH}")
OUT_DIR.mkdir(parents=True, exist_ok=True)
conn = sqlite3.connect(DB_PATH)
commodities = pd.read_sql_query("SELECT * FROM commodities ORDER BY id", conn)
form_schemas = pd.read_sql_query(
"SELECT * FROM commodity_form_schemas ORDER BY commodity_code", conn
)
conn.close()
commodities.to_excel(COMMODITY_XLSX, index=False, sheet_name="commodities")
form_schemas.to_excel(FORM_SCHEMA_XLSX, index=False, sheet_name="commodity_form_schemas")
print(f"Exported {len(commodities):,} rows -> {COMMODITY_XLSX}")
print(f"Exported {len(form_schemas):,} rows -> {FORM_SCHEMA_XLSX}")
if __name__ == "__main__":
main()