70 lines
2.0 KiB
Python
70 lines
2.0 KiB
Python
from pathlib import Path
|
|
|
|
from openpyxl import Workbook
|
|
|
|
|
|
ROOT = Path(__file__).resolve().parents[1]
|
|
OUT_DIR = ROOT / "sample-data"
|
|
|
|
|
|
def write_workbook(template_code: str, rows: list[list[str]], filename: str) -> None:
|
|
workbook = Workbook()
|
|
meta_sheet = workbook.active
|
|
meta_sheet.title = "META"
|
|
meta_sheet.append(["key", "value"])
|
|
meta_sheet.append(["templateCode", template_code])
|
|
meta_sheet.append(["templateVersion", "1.0"])
|
|
|
|
data_sheet = workbook.create_sheet("DATA")
|
|
if template_code == "trial-balance":
|
|
headers = ["fiscalPeriod", "entityCode", "accountCode", "partnerEntityCode", "currencyCode", "debitAmount", "creditAmount"]
|
|
else:
|
|
headers = ["fiscalPeriod", "entityCode", "accountCode", "currencyCode", "scenarioCode", "amountValue"]
|
|
|
|
data_sheet.append(headers)
|
|
for row in rows:
|
|
data_sheet.append(row)
|
|
|
|
workbook.save(OUT_DIR / filename)
|
|
|
|
|
|
def main() -> None:
|
|
OUT_DIR.mkdir(parents=True, exist_ok=True)
|
|
|
|
write_workbook(
|
|
"trial-balance",
|
|
[
|
|
["2026-03", "US1", "AR_INT", "", "USD", "100", "0"],
|
|
["2026-03", "HQ", "REV_EXT", "", "KRW", "0", "70"],
|
|
],
|
|
"trial-balance-invalid.xlsx",
|
|
)
|
|
|
|
write_workbook(
|
|
"trial-balance",
|
|
[
|
|
["2026-03", "US1", "AR_INT", "HQ", "USD", "100", "0"],
|
|
["2026-03", "HQ", "AP_INT", "US1", "KRW", "0", "100"],
|
|
["2026-03", "HQ", "REV_EXT", "", "KRW", "0", "200000"],
|
|
["2026-03", "HQ", "EXP_OPEX", "", "KRW", "200000", "0"],
|
|
],
|
|
"trial-balance-valid.xlsx",
|
|
)
|
|
|
|
write_workbook(
|
|
"forecast",
|
|
[
|
|
["2026-03", "US1", "REV_EXT", "USD", "PLAN", "500"],
|
|
["2026-03", "SG1", "EXP_OPEX", "SGD", "FORECAST", "100"],
|
|
],
|
|
"forecast-valid.xlsx",
|
|
)
|
|
|
|
write_workbook("trial-balance", [], "trial-balance-template.xlsx")
|
|
write_workbook("forecast", [], "forecast-template.xlsx")
|
|
|
|
|
|
if __name__ == "__main__":
|
|
main()
|
|
|