| 1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556 |
- /**
- * 从 docs/青浦区产业地块信息表.xlsx 生成 src/views/parkExcelAttrs.js
- * 运行: node scripts/build-park-excel-attrs.js
- */
- const fs = require("fs");
- const path = require("path");
- const XLSX = require("xlsx");
- const root = path.join(__dirname, "..");
- const xlsxPath = path.join(root, "docs", "青浦区产业地块信息表.xlsx");
- const outPath = path.join(root, "src", "views", "parkExcelAttrs.js");
- const wb = XLSX.readFile(xlsxPath);
- const rows = XLSX.utils.sheet_to_json(wb.Sheets[wb.SheetNames[0]], {
- header: 1,
- defval: "",
- });
- const dataRows = rows.slice(2).filter((r) => r[0]);
- const obj = {};
- for (const r of dataRows) {
- const name = String(r[0]).trim();
- const gsgy = Number(r[1]) || 0;
- const gsqy = Number(r[2]) || 0;
- const areaRaw = r[7];
- const area =
- typeof areaRaw === "number"
- ? areaRaw
- : parseFloat(String(areaRaw).replace(/,/g, "")) || 0;
- obj[name] = {
- 规上工业服务业企业数量: gsgy,
- 高企数量: gsqy,
- 入驻企业数量: gsgy + gsqy,
- 四至边界: {
- 东: String(r[3] || "").trim(),
- 南: String(r[4] || "").trim(),
- 西: String(r[5] || "").trim(),
- 北: String(r[6] || "").trim(),
- },
- 用地面积公顷: area,
- 备注: String(r[8] || "").trim(),
- };
- }
- const banner = `/**
- * 甲方《青浦区产业地块信息表.xlsx》解析结果。
- * 键与 parkDatas 中 properties.name2 一致。
- * 更新数据请修改 Excel 后执行: node scripts/build-park-excel-attrs.js
- */
- `;
- const body = `export const PARK_EXCEL_ATTRS_BY_NAME = ${JSON.stringify(obj, null, 2)};
- `;
- fs.writeFileSync(outPath, banner + body, "utf8");
- console.log("Wrote", outPath, "parks:", Object.keys(obj).length);
|