【发布时间】:2021-10-20 23:16:28
【问题描述】:
我有一个节点项目,我需要节点以使用现有 XLSM 文件作为模板来创建新的 XLSM 文件。该模板包含大量样式、图像和 VBA。应用程序只需将值插入到几个单元格中,并以谨慎的名称保存新文件。
我已尝试使用 XLSX 和 ExcelJS npms 来完成此任务。两者都以不同的方式失败:
ExcelJS:目前似乎不支持编写 XLSM 文件。尝试这样做会导致文件损坏。
XLSX:我无法创建模板的真实副本。除其他外,它缺少格式和 VBA。这是我开始使用的非常基本的代码:
const templatePath = "C:/Users/rapsputinforever/Desktop/template.xlsm"
const directory = "C:/Users/rapsputinforever/Desktop"
const workbook = XLSX.readFile(templatePath);
// will insert data to some cells here
XLSX.writeFile(workbook, directory + '/copy.xlsm');
我知道这个包有很多选项,这些选项似乎与我遇到的问题无关,并且有助于完成表面上看起来非常简单的任务:
- 阅读模板
- 向单元格添加值
- 写为新文件保留所有 VBA、样式等
我愿意研究其他包、库,甚至其他技术。这个工具是 React 应用程序后端的一部分,但是我不确定 React 是否可以完成这个。我愿意接受任何建议。感谢您的帮助!
【问题讨论】:
-
我一直在考虑的当前解决方案是使用“fs”npm 和 excel VBA 执行“变通办法”,产生相同的结果。用户单击 React Node 中的“发送到模板”按钮使用 fs 复制模板 XLSM(希望保持文件的完整性) 节点使用所需数据创建 CSV,保存在本地驱动器中 用户在下载时获取重复文件 用户打开文件,单击“导入”按钮,触发 VBA 查找和使用创建的 CSV 用户继续使用 Clunky 设计的模板,但使用 Excel 也是如此,所以按部就班?
标签: node.js reactjs exceljs xlsm sheetjs