@hyjiacan/xlsxio
v0.3.6
Published
Import/Export data for .xlsx based on ExcelJS
Downloads
11
Readme
xlsxio
xlsx 格式数据导入/导出支持包。
安装
npm install @hyjiacan/xlsxio
依赖
用法
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 是通过 <input type="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
API
WorkbookDef
工作薄定义对象,这是操作 Excel 的入口SheetDef
表定义对象,一个工作薄中可以包含多个表ColumnDef
列定义对象,一个表中可以包含多个列
后记
为了让单元格注释能自动适应内容大小,对原始的输出进行了处理:
文件 xl/drawings/vmlDrawing2.vml
<v:textbox><div style="text-align:left;"></div></v:textbox>
// 替换为
<v:textbox style="mso-fit-shape-to-text:t"><div style="text-align:left;"></div></v:textbox>
需要关注 PR #1933,若其被合并,
则需要移除此操作,并在输出注释参数上添加 autoShape: true