github地址:https://github.com/SheetJS/sh...

1. 引入

应用完整版,外面蕴含了所有模块

我是将文件下载到本地,在我的项目中间接援用,也能够CND援用。

<script src="https://unpkg.com/xlsx/dist/xlsx.full.min.js"></script>

2. XLSX的罕用性能

2.1 输出

//读取(本地或网络)文件,并创立一个工作薄const workbook = XLSX.read(data, opts);//创立一个新的工作簿const workbook = XLSX.utils.book_new();//将Array<Object>生成为sheet,其中蕴含基于对象键主动生成的“题目”。//header 题目应用指定的字段程序(默认 Object.keys)//skipHeader 如果为true,则不会在输入中蕴含题目行const worksheet = XLSX.utils.json_to_sheet(Array<Object>, {header, skipHeader: false});//将Array<Array>生成为sheetconst worksheet = XLSX.utils.aoa_to_sheet(Array<Array>);//承受一个表 DOM 元素并返回一个相似于输出表的工作表。const worksheet = XLSX.utils.table_to_sheet(DOM)//更新sheet,在对应地位进行笼罩XLSX.utils.sheet_add_json(worksheet, Array<Object>, {header,skipHeader: true, origin: "A2"});XLSX.utils.sheet_add_aoa(worksheet, Array<Array>, { origin: "A1" });XLSX.utils.sheet_add_dom(worksheet, DOM, { origin: -1 });//将sheet工作表增加到该工作薄中XLSX.utils.book_append_sheet(workbook, worksheet, "sheet名称");

2.2 输入

//将sheet生成对应格局的数据let svg = XLSX.utils.sheet_to_csv(worksheet)let html = XLSX.utils.sheet_to_html(worksheet)let json = XLSX.utils.sheet_to_json(worksheet)//输入对应的数据编码,进行下载或上传//workbook.SheetNames,workbook.Sheets 必传let data = XLSX.write(workbook, opts);

3. 表格格局

3.1 workbook对象

workbook.SheetNames 是工作表名称的有序列表workbook.Sheets 是一个对象,其键是工作表名称,其值是工作表对象

3.2 worksheet工作表对象

  • worksheet['!ref']:示意工作表范畴的基于 A-1 的范畴。 应用工作表的函数应应用此参数来确定范畴。 调配在范畴之外的单元格不会被解决。 特地是在手写工作表时,不包含范畴之外的单元格。
  • worksheet['!merges']:对应于工作表中合并单元格的范畴对象数组。 纯文本格式不反对合并单元格。 CSV 导出将写入合并范畴内的所有单元格(如果存在),因而请确保仅设置范畴内的第一个单元格(左上角)。
  • 单元格范畴对象存储为 {s:S, e:E} 其中 S 是第一个单元格,E 是范畴中的最初一个单元格。 单元格地址对象存储为 {c:C, r:R} 其中 C 和 R 别离是列号和行号,索引从0开始。 例如,单元格地址 A1 由对象 {c:0, r:0} 示意,范畴 A3:B7 由对象 {s:{c:0, r:2}, e:{c:1, r:6}} 示意。
  • worksheet['!cols']:列属性对象的数组。 列宽实际上以标准化形式存储在文件中,以“最大数字宽度”(渲染数字 0-9 的最大宽度,以像素为单位)来掂量。 解析时,列对象将像素宽度存储在 wpx 字段中,将字符宽度存储在 wch 字段中,将最大数字宽度存储在 MDW 字段中。
  • 单元格对象 是以相似A1的模式展现的,排除蕴含!的。
  • worksheet['!rows']:行属性对象的数组,如文档前面所述。 每个行对象都对包含行高和可见性在内的属性进行编码。
//列属性type  ColInfo  =  {   /* 可见性 */   hidden ?: boolean ;  // 如果为真,则暗藏列   /* 列宽以下列形式之一指定: */   wpx ?: number ;   // 屏幕像素   width ?: number ;   // Excel 的“最大数字宽度”中的宽度,width*256 是整数   wch ?: number ;   // 字符宽度   /* 用于保留文件特色的其余字段 */   level ?: number ;   // 0 索引纲要/组级别   MDW ?: number ;   // Excel 的“最大数字宽度”单位,总是整数 } ; //行属性 type  RowInfo  =  {   /* 可见性 */   hidden ?: boolean ;  // 如果为真,则暗藏行   /* 行高通过以下形式之一指定: */   hpx ?: number ;   // 屏幕像素高度   hpt ?: number ;   // 高度(以点为   level ?: number ;   // 0 索引纲要/组级别 } ; 

3.3 单元格对象

Key形容
v原始值(无关详细信息,请参阅数据类型局部)
w格式化文本(如果实用)
t类型: b布尔值, e谬误, n数字, d日期, s文本, z存根
f编码为 A1 款式字符串的单元格公式(如果实用)
F如果公式是数组公式,则关闭数组的范畴(如果实用)
D如果为真,则数组公式是动静的(如果实用)
r富文本编码(如果实用)
h富文本的 HTML 出现(如果实用)
c与单元格相干的评论
z与单元格关联的数字格局字符串(如果须要)
l单元格超链接对象 ( .Target持有链接, .Tooltip是工具提醒)
s单元格的款式/主题(如果实用)。 ps: 从文件读取时默认不提取行和列属性,写入文件时默认不保留。 选项 cellStyles: true 必须传递给相干的读取或写入函数。

4. 参数

4.1 read和 readFile函数承受的选项参数

选项名称默认形容
type输出数据编码(参见上面的输出类型)
rawfalse如果为 true,纯文本解析将不会解析值 **
codepage如果指定,请在适当时应用代码页 **
cellFormulatrue将公式保留到 .f 字段
cellHTMLtrue解析富文本并将 HTML 保留到 .h场地
cellNFfalse将数字格局字符串保留到 .z场地
cellStylesfalse将款式/主题信息保留到 .s场地
cellTexttrue生成的格式化文本到 .w场地
cellDatesfalse将日期存储为类型 d(默认为 n)
dateNF如果指定,请应用字符串作为日期代码 14 **
sheetStubsfalse创立类型的单元格对象 z对于存根细胞
sheetRows0如果>0,则读取第一个 sheetRows行**
bookDepsfalse如果为真,则解析计算链
bookFilesfalse如果为 true,则将原始文件增加到 book 对象**
bookPropsfalse如果为真,则仅解析足以获取图书元数据**
bookSheetsfalse如果为真,则仅解析足以获取工作表名称
bookVBAfalse如果为真,则将 VBA blob 复制到 vbaraw场地 **
password“”如果已定义且文件已加密,请应用明码 **
WTFfalse如果为真,则在意外的文件性能上抛出谬误**
sheets如果指定,则仅解析指定的工作表**
PRNfalse如果为真,则容许解析 PRN 文件 **
xlfnfalse如果属实,请保留 _xlfn.公式中的前缀**
FSDSV 字段分隔符笼罩

4.2 write和 writeFile函数承受的选项参数:

选项名称默认形容
type输入数据编码(见上面的输入类型)
cellDatesfalse将日期存储为类型 d(默认为 n)
bookSSTfalse生成共享字符串表**
bookType"xlsx"工作簿类型(无关反对的格局,请参见下文)
sheet""单张格局的工作表名称**
compressionfalse对基于 ZIP 的格局应用 ZIP 压缩**
Props写入时笼罩工作簿属性**
themeXLSX编写 XLSX/XLSB/XLSM 时笼罩主题 XML **
ignoreECtrue克制“数字作为文本”谬误**
numbersNUMBERS导出的无效负载**

4.3 输出/输入类型

type预期
"base64"string:文件的Base64编码
"binary"字符串:二进制字符串(字节 n是 data.charCodeAt(n))
"string"string:JS字符串(字符解释为UTF8)
"buffer"节点缓冲区
"array"数组:8位无符号整数数组(字节 n是 data[n])
"file"字符串:将被读取的文件门路(仅限 nodejs)

4.4 sheet_add_* 中的origin参数

origin形容
(cell object)应用指定单元格(单元格对象)
(string)应用指定单元格(A1 款式单元格)
(number >= 0)从指定行的第一列开始(0-indexed)
-1从第一列开始附加到工作表的底部
(default)从单元格 A1 开始

4.5 sheet_to_json函数的第二个参数对象

选项名称默认形容
rawtrue应用原始值 (true) 或格式化字符串 (false)
range来自 WS覆盖范围(见下表)
header管制输入格局(见下表)
dateNFFMT 14在字符串输入中应用指定的日期格局
defval应用指定值代替 null 或 undefined
blankrows**在输入中蕴含空行**
range形容
(number)应用工作表范畴,但将起始行设置为值
(string)应用指定范畴(A1 款式的有界范畴字符串)
(default)应用工作表范畴 ( worksheet['!ref'])
默认状况下, sheet_to_json 扫描第一行并将值用作题目。 应用 header: 1 选项,该函数导出一个值数组的数组。
header形容
1生成数组数组(“二维数组”)
"A"行对象键是文字列标签
array of strings应用指定的字符串作为行对象中的键
(default)将第一行作为键读取并打消歧义