simple-xlsx-template
在浏览器中根据xlsx模板生产xlsx并下载,还有pptx, docx
约定
- 每个sheet用sheetN表示,比如sheet1, sheet2...
功能
- 保留字段原来样式
- 修改文本字段
- 修改数值字段
- 联动更新相关图表
不支持
- 只支持修改字段,不支持新增
- 不支持公式字段自动修改
安装
npm i simple-xlsx-template
使用
const xlsx_data = sheet1: A1: '满意' B1: 45 const download_filename = 'demo.xlsx'
支持pptx模板
约定
- 每个slide用slideN表示,比如slide1, slide2...
- 每个image用imageN表示,比如image1, image2...
- 每个chart用chartN表示,比如chart1, chart2...
功能
- 替换文本
- 替换图片
- 修改图表
不支持
- 每个slide中的具体的image所对应的表示imageN是不确定的,需要尝试, 只有一个的话就用image1
- 每个slide中的具体的chart所对应的表示chartN是不确定的,需要尝试, 只有一个的话就用chart1
使用pptx
const pptx_data = slide1: // 替换文本 text: 'hello world': '你好世界' // 替换图片 image: image1: image_url // 修改图表 chart: chart1: sheet1: A2: '类型x' B1: '系列y' B2: 43 const download_filename = 'demo.pptx'
支持docx模板
约定
- 每个image用imageN表示,比如image1, image2...
- 每个chart用chartN表示,比如chart1, chart2...
功能
- 替换文本
- 替换图片
- 修改图表
不支持
- 具体的image所对应的表示imageN是不确定的,需要尝试, 只有一个的话就用image1
- 具体的chart所对应的表示chartN是不确定的,需要尝试, 只有一个的话就用chart1
使用docx
const docx_data = text: '非洲野生动物': '你好世界' image: image1: docx_image_url chart: chart1: sheet1: A2: '类型x' B1: '系列y' B2: 660 const download_filename = 'demo.docx'
如何开发
- 首选选定一个基础的版本,比如v1.xlsx、v1.pptx 或者 v1.docx
- 用编辑器修改部分数据,并另存为第二个版本,比如v2.xlsx、v2.pptx 或者 v2.docx
- 执行命令
./diffxml.sh v1.xlsx v2.xlsx
、./diffxml.sh v1.pptx v2.pptx
或者./diffxml.sh v1.docx v2.docx
- 根据diffxml的结果,编写代码实现修改
- 打包到前端项目测试结果
目标
- 简单优先
- 稳定优先
证书
MIT