当前位置: 首页 > Web前端 > HTML

操作excel的js工具库——XLSX使用方法

时间:2023-03-28 19:31:18 HTML

github地址:https://github.com/SheetJS/sh...1.引入并使用完整版,包含所有模块。我把文件下载到本地,直接在项目中引用,也可以通过CND引用。2。XLSX2.1常用函数Input//读取(本地或网络)文件,并创建一个工作簿letworkbook=XLSX.read(data,opts);//创建一个新工作簿letworkbook=XLSX.utils.book_new();//通过抓取页面中的HTMLTABLE创建工作表letworkbook=XLSX.utils.table_to_book(dom_element,opts);//GenerateArrayassheet,其中包含基于对象键自动生成的“标题”。//headerheader使用指定字段顺序(默认Object.keys)//skipHeader如果为true,header行将不会包含在输出中letworksheet=XLSX.utils.json_to_sheet(Array,{header,skipHeader:false});//生成Array作为sheetletworksheet=XLSX.utils.aoa_to_sheet(Array);//接受表格DOM元素并返回类似于输入sheetletworksheet=XLSX的工作表。utils.table_to_sheet(DOM)//更新sheet并在相应位置覆盖XLSX.utils.sheet_add_json(worksheet,Array,{header,skipHeader:true,origin:"A2"});XLSX.utils.sheet_add_aoa(worksheet,Array,{origin:"A1"});XLSX.utils.sheet_add_dom(worksheet,DOM,{origin:-1});//将sheet工作表添加到工作簿XLSX.utils。book_append_sheet(工作簿,工作表,“工作表名称”);2.2Output//从sheet中生成相应格式的数据utils.sheet_to_json(worksheet)//输出对应的数据编码,下载或上传//workbook.SheetNames,必须传workbook.Sheetsletdata=XLSX.write(workbook,opts);3.表格格式3.1workbook对象workbook.SheetNames是工作表名称的有序列表workbook.Sheets是一个对象,其键为工作表名称,值为工作表对象3.2工作表工作表对象worksheet['!ref']:表示范围使用基于A-1范围的工作表的工作表函数应使用此参数来确定范围。不处理分配在范围之外的单元格。尤其是手写工作表时,不包括范围外的单元格。worksheet['!merges']:与工作表中合并的单元格对应的Range对象数组。纯文本格式不支持合并单元格。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}}表示。单元格对象以类似于A1的形式显示,但不包括包含!的对象。worksheet['!cols']:列属性对象数组。列宽实际上以标准化方式存储在文件中,以“最大数字宽度”(以像素为单位呈现数字0-9的最大宽度)测量。解析时,列对象在wpx字段中存储像素宽度,在wch字段中存储字符宽度,在MDW字段中存储最大数字宽度。worksheet['!rows']:行属性对象数组,如文档后面所述。每个行对象编码属性,包括行高和可见性。//列属性类型ColInfo={/*可见性*/hidden?:boolean;//如果为true,则隐藏该列/*列宽以下列方式之一指定:*/wpx?:number;//屏幕像素宽度?:number;//Excel的“最大数字宽度”中的宽度,width*256为整数wch?:number;//字符宽度/*其他用于保存文件特征的字段*/level?:number;//0索引大纲/组级MDW?:number;//Excel的“最大数字宽度”单位,始终为整数};//行属性类型RowInfo={/*可见性*/hidden?:boolean;//如果为True则隐藏行/*行高以下列方式之一指定:*/hpx?:number;//以屏幕像素为单位的高度hpt?:number;//height(levelinpoints?:number;//0indexOutline/GroupLevel};3.3CellObjectKeyDescriptionvPrimitiveValue(seeDataTypessectionfordetails)wFormattedText(ifapplicable)tType:bBoolean,e错误,n数字,d日期,s文本,z存根f编码为A1样式字符串的单元格公式(如果适用)F如果公式是数组公式,则封闭数组的范围(如果适用)D如果为真,数组公式是动态的(如果适用)r富文本编码(如果适用)h富文本的HTML呈现(如果适用)c与单元格相关联的注释z与单元格相关联的数字格式字符串(如果需要)l单元格超链接对象(.Targetholds有链接,.Tooltip是工具提示)s单元格的样式/主题(如果适用)。ps:读取文件时默认不提取行列属性,写入文件时默认不保留。选项cellStyles:true必须传递给相关的读或写函数。4.参数4.1read和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如果为真,解析计算chainbookFiles如果为真,则为false,将原始文件添加到书籍对象**bookProps如果为真,则为false,仅解析足以获取书籍元数据**bookSheets如果为真,则为false,仅解析足以获取工作表名称bookVBA如果为真,则为false,将VBAblob复制到vbaraw字段**密码""如果已定义且文件已加密,则使用密码**WTFfalse如果为真,则意外如果指定,则在**sheets的文件功能上抛出错误,仅解析指定的工作表**PRNfalse如果为真,则允许解析PRN文件**xlfnfalse如果为真,则保留_xlfn。公式中的前缀**FSDSV字段分隔符覆盖4.2write和writeFile函数接受的选项参数:选项名称默认描述类型输出数据编码(请参阅下面的输出类型)cellDatesfalse将日期存储为类型d(默认n)bookSSTfalse生成共享stringtable**bookType"xlsx"工作簿类型(支持的格式见下文)sheet""sheetnameforsheetformat**compressionfalse对基于ZIP的格式使用ZIP压缩**Props在写入时覆盖工作簿属性**themeXLSX写入XLSX/XLSB/XLSM时覆盖主题XML**ignoreECtrue抑制“数字作为文本”错误**numbersNUMBERS导出有效负载**4.3输入/输出类型类型预期“base64”字符串:文件的Base64编码“二进制”字符串:二进制字符串(bytenisdata.charCodeAt(n))"string"string:JSstring(characterinterpretedasUTF8)"buffer"nodebuffer"array"array:arrayof8-bitunsignedintegers(bytenisdata[n])"file"string:需要读取的文件路径(仅限nodejs)4.4sheet_add_*origin中的origin参数origindescription(cellobject)usesthespecifiedcell(cellobject)(string)Usethespecifiedcell(A1stylecell)(number>=0)从指定行的第一列(0-索引)-1从第一列追加到工作表的底部(默认)从单元格A14.5sheet_to_json函数对象的第二个参数选项名称默认描述rawtrue使用WS覆盖范围内的原始值(true)或格式化字符串(false)(见下表)headercontrol输出格式(见下表)dateNFFMT14inUsespecifieddateformatinstringoutputdefvalUsespecifiedvalueinsteadofnullorundefinedblankrows**Includeblanklinesinoutput**rangedescription(number)使用工作表范围,但将起始行设置为value(string)usesspecifiedrange(A1-styleboundedrangestring)(default)useworksheetrange(worksheet['!ref'])默认情况下,sheet_to_json扫描第一行并将值用作标题使用标题:1选项,函数Exportarrayofarraysofvalues.headerdescription1生成数组数组(“二维数组”)“A”行对象键是文本列标签字符串数组使用指定字符串作为行对象中的键(默认)读取第一行作为键并消除歧义