1 Star 1 Fork 1

网安科技前端组 / xlsxio

加入 Gitee
与超过 1200万 开发者一起发现、参与优秀开源项目,私有仓库也完全免费 :)
免费加入
该仓库未声明开源许可证文件(LICENSE),使用请关注具体项目描述及其代码上游依赖。
克隆/下载
贡献代码
同步代码
取消
提示: 由于 Git 不支持空文件夾,创建文件夹后会生成空的 .keep 文件
Loading...
README

xlsxio

xlsx 格式数据导入/导出支持包。

安装

npm install @wangankeji/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

空文件

简介

基于 ExcelJS 的 xlsx 格式数据导入导出支持 展开 收起
JavaScript 等 4 种语言
取消

发行版

暂无发行版

贡献者

全部

近期动态

加载更多
不能加载更多了
1
https://gitee.com/wangankeji-fe/xlsxio.git
git@gitee.com:wangankeji-fe/xlsxio.git
wangankeji-fe
xlsxio
xlsxio
master

搜索帮助