# xlsxio **Repository Path**: amtech/xlsxio ## Basic Information - **Project Name**: xlsxio - **Description**: 基于 ExcelJS 的 xlsx 格式数据导入导出支持 - **Primary Language**: Unknown - **License**: Not specified - **Default Branch**: master - **Homepage**: None - **GVP Project**: No ## Statistics - **Stars**: 0 - **Forks**: 1 - **Created**: 2023-11-27 - **Last Updated**: 2023-11-27 ## Categories & Tags **Categories**: Uncategorized **Tags**: None ## README # xlsxio xlsx 格式数据导入/导出支持包。 ## 安装 ```shell npm install @wangankeji/xlsxio ``` ### 依赖 - [ExcelJS](https://github.com/exceljs/exceljs) - [JSZip](https://stuk.github.io/jszip/) ## 用法 ```js import {WorkbookDef, SheetDef, ColumnDef, ColumnEnum} from 'xlsxio' const wb = new WorkbookDef([ new SheetDef('Sheet1', [ new ColumnDef('列名称', '字段名称', { help: '此列的帮助信息', headerStyle: { width: 20, size: 12 } }), ], { help: '此表的帮助信息' }), new SheetDef('Sheet2', [ new ColumnDef('列名称', '字段名称', { help: '此列的帮助信息' }), ]) ]) // 从文件导入数据, file 是通过 选择的文件 const data = wb.read(file) // 将数据写入文件,可以通过第二个参数指定文件名,指定时会下载文件 const blobData = wb.write([{ name: 'Sheet1', rows: [] }, { name: 'Sheet2', rows: [] }]) // 下载导入模板文件 // true 表示需要输出帮助信息 wb.write([], '模板文件名', true) ``` `rows` 是表格的数据集合。每行的数据可以是与 ColumnDef 对应的 `object`,也可以是一个简单 `array`。 > 详细用法见 [src/App.vue](./src/App.vue) ## API - `WorkbookDef` 工作薄定义对象,这是操作 Excel 的入口 - `SheetDef` 表定义对象,一个工作薄中可以包含多个表 - `ColumnDef` 列定义对象,一个表中可以包含多个列 ## 后记 为了让单元格注释能自动适应内容大小,对原始的输出进行了处理: 文件 _xl/drawings/vmlDrawing2.vml_ ```
// 替换为
``` 需要关注 [PR #1933](https://github.com/exceljs/exceljs/pull/1933),若其被合并, 则需要移除此操作,并在输出注释参数上添加 `autoShape: true`