1、xlsx的概念
xlsx是Microsoft Office EXCEL 2007/2010/2013/2016/2019文档的扩展名。其基于Office Open XML标准的压缩文件格式取代了其以前专有的默认文件格式,在串通的文件名后面添加了字母“x”(即".docx"取代".doc"、".xlsx"取代".xls"、".pptx"取代".ppt")。任何能够打开".xlsx"文件的文字处理软件都可以将该文档转换为".xls"文件,".xlsx"文件比".xls"文件所占用空间更小。
2、js-xlsx
js-xlsx将注意力集中到了数据转换和导出上,所以它支持相当多种类的数据解析和导出,不仅仅局限于支持xlsx格式。
支持导入的格式:
type | expected input |
---|---|
"base64" | string:Base64 encoding of the file |
"binary" | string:binary string(byte n is data.charCodeAt(n)) |
"string" | string:JS string(characters interpreted as UTF8) |
"buffer" | nodejs Buffer |
"array" | array:array of 8-bit unsigned int(byte n is data[n]) |
"file" | string:path of file that will be read(nodejs only) |
支持的导出格式
bookType | file ext | container | sheets | Description |
---|---|---|---|---|
xlsx | .xlsx | ZIP | multi | Excel 2007+XML Format |
xlsm | .xlsm | ZIP | multi | Excel 2007+Macro XML Format |
xlsb | .xlsb | ZIP | multi | Excel 2007+Binary Format |
biff8 | .xls | CFB | multi | Excel 97-2004 Workbook Format |
biff5 | .xls | CFB | multi | Excel 5.0/95 Workbook Format |
biff2 | .xls | none | single | Excel 2.0 Worksheet Format |
xlml | .xls | none | multi | Excel 2003-2004(SpreadsheetML) |
ods | .ods | ZIP | multi | OpenDocument Spreadsheet |
fods | .fods | none | multi | Flat OpenDocument Spreadsheet |
csv | .csv | none | single | Comma Separated Values |
txt | .txt | none | single | UTF-16 Unicode Text(TXT) |
sylk | .sylk | none | single | Symbolic Link(SYLK) |
html | .html | none | single | HTML Document |
dif | .dif | none | single | Data Interchange Format(DIF) |
dbf | .dbf | none | single | dBASE II + VFP Extensions(DBF) |
rtf | .rtf | none | single | Rich Text Format(RTF) |
prn | .prn | none | single | Lotus Formatted Text |
eth | .eth | none | single | Ethercalc Record Format(ETH) |
3、概念
js-xlsx提供了一个中间层用于操作数据,他将不同类型的文件抽象成同一个js对象,从而规避了操作不同种类数据之间的复杂性。并且围绕着这个对象提供了一系列的抽象功能。
4、对应关系
Excel名词 | js-xlsx中的抽象类型 |
---|---|
工作薄 | workBook |
工作表 | Sheets |
Excel引用样式(单元格地址) | cellAddress |
单元格 | Cell |
我们在使用Excel的过程中,获取一个数据的流程如下:
(1)打开工作薄(2)打开一个工作表(3)选中一片区域或者一个单元格
(4)针对数据进行操作(5)保存(另存为)
那么在js-xlsx中获取一个单元格内容的操作如下:
// 先不要关心我们的workbook对象是从哪里来的
var first_sheet_name = workbook.SheetNames[0]; // 获取工作薄中的工作表名字
var address_of_cell='A1'; // 提供一个引用样式(单元格下标)
var worksheet = workbook.Sheets[first_sheet_name]; // 获取对应的工作表对象
var desired_cell = worksheet[address_of_cell]; // 获取对用的单元格对象
var desired_value = (desired_cell ? desired_cell.v: undefined); // 获取对应单元格中的数据
网友评论