React JS 将 word/excel 模板(dot/dotm、xlt/xltm)合并为单个 docx/xlsx

React JS merge word/excel template (dot/dotm, xlt/xltm) into single docx/xlsx

我们正在将应用程序的前端从 Java 转移到 React JS。在应用程序中,用户可以使用 Office 模板文件导出一些数据。在单词的情况下,它的 .dot/.dotm 文件 + 数据 + 描述(excel 是 .xlt/.xltm + 数据 + desc)。这些文件在服务器端 (linux) 创建,然后复制到客户端 PC 并由单个 .dot/.xlt 文件启动,将它们合并为单个 .doc/.xls 文件。

单词示例:

├───startHere.dot
├───templateFile.dot
├───dataFile.tmp
└───descFile.dat

"descFile.dat" 仅描述其他三个宏文件。它告诉哪个文件是模板,哪个是数据文件和输出名称。这四个文件被下载到客户端 PC,然后通过 创建单个 .doc 文件:

的 cmd 启动
rundll32.exe shell32.dll,ShellExec_RunDLL excel.exe /e /p "path" startHere.dot

不幸的是,据我所知,启动 cmd 在 React JS 中是不可能的。是否有一些实用程序可以将这些文件合并到 React JS 中,并且浏览器的输出将是 word.docx / excel.xlsx?

谢谢

对于那些正在寻找如何将 Word 邮件合并(docx 模板)或将数据插入 Excel 模板 (xlsx) 的人来说,这里有很棒的包:

单词:https://www.npmjs.com/package/docx-templates

Excel: https://www.npmjs.com/package/xlsx-populate#XlsxPopulate

问题出在客户端的性能上(使用 React JS)。使用这些包将一个词/excel 与数据合并真的很快。但是执行几十个数据源需要很多时间。你得自己试试。