sheetjs: 用于各种电子表格格式的解析器和写入器。从官方规范、相关文件和测试文件中实现的纯JS洁净室。强调解析和编写的稳健性,用统一的JS表示的跨格式功能的兼容性,以及ES3/ES5浏览器的兼容

资讯 2024-06-16 阅读:46 评论:0
SHJS是多种电子表格格式的压缩器和写作器,通过正式规格、相关文件和测试文件实现一种简单的JSU方法,SHJS强调解剖和写作的健全性、其跨格式特点和统一的JS规格是兼容的,ES3/ES5浏览器与IE6相容后退。 目前,这是一个社区版本,我...

SHJS是多种电子表格格式的压缩器和写作器,通过正式规格、相关文件和测试文件实现一种简单的JSU方法,SHJS强调解剖和写作的健全性、其跨格式特点和统一的JS规格是兼容的,ES3/ES5浏览器与IE6相容后退。

目前,这是一个社区版本,我们还提供了一种专业版本的提高业绩,这是专业版本的另一个特点,提供了风格和专业支持。

专业版专业版

业务支助

导言 导言 文件 文件 文件

浏览器示例

来源来源来源

问题和错误报告

共同支助问题

支持的电子数据表文件格式 :

支持格式的图表(单击视图)

  circo graph of format support

  graph legend

浏览器测试

  Build Status

  Build Status

  Build Status

  Coverage Status

  Dependencies Status

  npm Downloads

  ghit.me

  Analytics

单击以显示目录

安装安装

JS JS 生态实例

可选模块模块

ECMAScript 5兼容性

理由理由

分析工作手册

分析示例

流流读

将联系人移至(_V)...

分析和编制实例

编写工作手册

举例的准备

流流写入

界面界面

分析函数

写入函数

工具工具函数工具函数

通用电子表格格式

一般结构

单元格对象

数据类型

日期 类型 类型

数据表格对象

工作表对象

图表对象

宏对象

对话框表格对象

将联系人移至(_V)...

工作手册的文件属性

书级的书级属性

定义定义名称

查看视图工作表

其他工作簿属性

文档特征

公式公式公式

列属性

线条属性

数字格式

超超链接

单元格注释

表的可见度

VBA 和宏观命令

解析选项

输入类型

缩略图文件类型

书写选项

支持的输出格式

产出类型

工具工具函数工具函数

群群投入

对象输入

HTML 表格输入

公式输出输出

分隔符输出

UTF-16 Unicode 文本

HTML HTML 输出

  JSON

文件格式

  Excel 2007+ XML (XLSX/XLSM)

  Excel 2.0-95 (BIFF2/BIFF3/BIFF4/BIFF5)

  Excel 97-2004 Binary (BIFF8)

  Excel 2003-2004 (SpreadsheetML)

  Excel 2007+ Binary (XLSB, BIFF12)

  Delimiter-Separated Values (CSV/TXT)

其他工作手册格式

  Lotus 1-2-3 (WKS/WK1/WK2/WK3/WK4/123)

  Quattro Pro (WQ1/WQ2/WB1/WB2/WB3/QPW)

  OpenDocument Spreadsheet (ODS/FODS)

  Uniform Office Spreadsheet (UOS1/2)

其他表格格式

  dBASE and Visual FoxPro (DBF)

  Symbolic Link (SYLK)

  Lotus Formatted Text (PRN)

  Data Interchange Format (DIF)

  HTML

  Rich Text Format (RTF)

  Ethercalc Record Format (ETH)

测试测试测试

  Node

浏览器

测试环境

测试文件

合作合作

  OSX/Linux

  Windows

测试测试测试

无法创建日历“%s”:%s

参考参考参考参考参考文献

在浏览器中使用, 添加脚本标记 :

  

使用 CDN (单击以显示细节)

  CDN

  URL

  https://unpkg.com/xlsx/

  https://jsdelivr.com/package/npm/xlsx

  http://cdnjs.com/libraries/xlsx

  https://bundle.run/xlsx@latest?name=XLSX

提供最新版本:

  

使用 npm :

  $ npm install xlsx

使用功率 :

  $ bower install js-xlsx

该目录包括简单项目:

框架和APISIS

包装工具

综合平台

可选特性( 单击以显示细节)

节点版本自动要求模块提供其他特性。 有些模块文件大, 并且只用于特定设置中, 所以不应将它们作为核心部件一起装入。 当它们用于浏览器时, 模块可以以下列方式装入 :

  

  

取决于正确版本的每种版本都可以放在离子/离子目录下。

完整的单一文件版本在文件中 。

默认情况下, Webpack 和 Brown 服务器将用可选模块构建。 可以通过配置 Webpack 来删除支持 :

  resolve: {

  alias: { "https://gitee.com/ShowCai/dist/cpexcel.js": "" } // <-- omit international support

  }

由于图书馆使用了像这样的函数, 旧版浏览器需要shim 来提供缺失的函数 。

要使用它,您需要在装入脚本标记前添加shim 。

  

  

  

  

Sim.min.js 还包括 IE6-9 中用于装入和保存文件的文件总和。 脚本将shim 绑在适用于 Photoshop 和其他 Adobe 产品的格式上。

理由(单击以显示细节)

许多第三方图书馆或者支持格式,或者为每种支持文件类型提供一个不同的组群。 虽然2007年Excel中引入了XLSB, 但只有Schep和Excel支持这一格式。

为了强化未知格式的显示,js-xlsx 使用纯 JS 显示(# common-spoadshe-format), 称为 [“ 通用电子表格格式 ” 。 重点放在可以具有某些特性的统一显示上, 如格式转换和组合。 通过提取各种格式的复杂性, 该工具不必为特定文件类型担心 。

简单的对象显示,加上小心的代码练习,允许在更老的浏览器和像这样的替代环境中运行示例。虽然使用最新和最佳功能是可取的,但需要最新的浏览器限制兼容性。

该工具函数捕捉常见使用实例, 如创建 JS 对象或 HTML 。 大多数简单例子只使用几行代码。 大多数复杂、 共同的复杂操作应该直接生成 。

在2007年的Excel中,Excel添加了XSLX格式作为默认起点。但是,还有一些其他格式将具有更多的这些属性。例如,XLSB格式XLSX格式类似,尽管文件将使用一半的空间,并将开放给更开放的文件。虽然 XLSX 作家也可以使用其他格式,因此用户可以充分利用每种格式的独特性。社区版本的主要焦点是正确的数据转换,即从任何兼容的数据表达式中提取数据,并输出适用于任何第三方界面的各种数据格式。

对于解析,第一步是读取文件。这个步骤包括获取数据和导入数据库。这里是一些常见的例子。

NOdejs 读取文件( 单击以显示细节)

只有在服务器环境中才能使用 `readFile' 。 浏览器没有 API 来读取任何给定路径文件, 因此必须使用另一个策略 。

  ```js

  if(typeof require !=='undefined') XLSX=require('xlsx');

  var workbook=XLSX.readFile('test.xlsx');

  ```

Photoshop 扩展SextScript 阅读文件( 点击以显示细节)

将逻辑与 Photoshop 和其他扩展Script 目标包在一起。 文件的绝对路径需要指定 。

  #include "xlsx.extendscript.js"

  var workbook = XLSX.readFile(Folder.myDocuments + '/' + 'test.xlsx');

它包含一个更为复杂的例子。

浏览器读取页面上的 TabLE 元素( 单击以显示细节)

`table_to_book'和`table_to_she'功用函数捕捉 DOM 的 TabLE 元素并通过子点重叠。

  var workbook = XLSX.utils.table_to_book(document.getElementById('tableau'));

一个网页上的多个表格可以转换成单页。

  var workbook = XLSX.utils.book_new();

  var ws1 = XLSX.utils.table_to_sheet(document.getElementById('table1'));

  XLSX.utils.book_append_sheet(workbook, ws1, "Sheet1");

  var ws2 = XLSX.utils.table_to_sheet(document.getElementById('table2'));

  XLSX.utils.book_append_sheet(workbook, ws2, "Sheet2");

或者,可以提取和解析HTML代码。

  var htmlstr = document.getElementById('tableau').outerHTML;

  var workbook = XLSX.read(htmlstr, {type:'string'});

浏览器下载文件 (ajax) (单击以显示细节)

注:对于在旧版本浏览器中运行的更完整的示例,请查看示例。 [`xhr'example] (demos/xhr/) 包含更多“XMLHttprequest”和“fetch”的例子。

  var url = "http://oss.sheetjs.com/test_files/formula_stress_test.xlsx";

  var req = new XMLHttpRequest();

  req.open("GET", url, true);

  req.responseType = "arraybuffer";

  req.onload = function(e) {

  var data = new Uint8Array(req.response);

  var workbook = XLSX.read(data, {type:"array"});

  }

  req.send();

浏览器拖曳( 单击以显示细节)

Drag `fileReader' API, 使用 HTML5, 使用“ read Asbinary Stringing” 或“readAsArrayBuffer” 来装入数据。但并非所有浏览器都支持所有“fileReader” API, 因此强烈建议使用动态特性。

  var rABS = true; // true: readAsBinaryString ; false: readAsArrayBuffer

  function handleDrop(e) {

  e.stopPropagation(); e.preventDefault();

  var files = e.dataTransfer.files, f = files[0];

  var reader = new FileReader();

  reader.onload = function(e) {

  var data = e.target.result;

  if(!rABS) data = new Uint8Array(data);

  var workbook = XLSX.read(data, {type: rABS ? 'binary' : 'array'});

  };

  if(rABS) reader.readAsBinaryString(f); else reader.readAsArrayBuffer(f);

  }

  drop_dom_element.addEventListener('drop', handleDrop, false);

浏览器通过窗体元素上传文件(单击以显示细节)

从元素中获取的数据可以由拖动大小写中的同一 API 处理。

  var rABS = true; // true: readAsBinaryString ; false: readAsArrayBuffer

  function handleFile(e) {

  var files = e.target.files, f = files[0];

  var reader = new FileReader();

  reader.onload = function(e) {

  var data = e.target.result;

  if(!rABS) data = new Uint8Array(data);

  var workbook = XLSX.read(data, {type: rABS ? 'binary' : 'array'});

  };

  if(rABS) reader.readAsBinaryString(f); else reader.readAsArrayBuffer(f);

  }

  input_dom_element.addEventListener('change', handleFile, false);

举例来说,就是一个综合环境兼容性退却计划。

包括移动 App 文件在内的更多使用实例可以在包含的文件中找到。

为什么没有流量读取 API?

最常用和最有趣的格式(XLS、XLSX/M、XLSB、ODS)最终要么是 ZIP 要么是 CBB 文件容器。格式都没有在文档的开头设置目录结构: ZIP 文件将主目录记录放在逻辑文件的结尾处,但 CBB 文件可以将存储的信息放置在文件中的任何地方。 因此, 要正确处理这些格式, 流程函数必须在文件启动前保存整个文件。 这证明了流程期望的错误, 因此我们不提供对 API 的任何流量读取 。

处理可读流的最简单方式是缓存流, 最后处理整个文件。 这可以通过临时文件或可见的连接流来完成 。

可见连接器流程( 单击以显示细节)

  var fs = require('fs');

  var XLSX = require('xlsx');

  function process_RS(stream, cb){

  var buffers = [];

  stream.on('data', function(data) { buffers.push(data); });

  stream.on('end', function() {

  var buffer = Buffer.concat(buffers);

  var workbook = XLSX.read(buffer, {type:"buffer"});

  cb(workbook);

  });

  }

使用这种模块将增加现有有效解决办法的数量。

首次写入到文件系统( 单击以显示细节)

此示例使用生成的文件名 。

  var fs = require('fs'), tempfile = require('tempfile');

  var XLSX = require('xlsx');

  function process_RS(stream, cb){

  var fname = tempfile('.sheetjs');

  console.log(fname);

  var ostream = fs.createWriteStream(fname);

  stream.pipe(ostream);

  ostream.on('finish', function() {

  var workbook = XLSX.readFile(fname);

  fs.unlinkSync(fname);

  cb(workbook);

  });

  }

完整的天体格式将在本文件末尾提出。

读取指定的单元格(单击以显示细节)

此示例提取第一个工作表中 A1 单元格的存储值 :

  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);

在工作手册中添加新工作表( 单击以显示详细信息)

实例是生成的工作表的使用情况和将添加到工作手册中的工作表的使用情况。

  var new_ws_name = "SheetJS";

  var ws_data = [

  [ "S", "h", "e", "e", "t", "J", "S" ],

  [ 1 , 2 , 3 , 4 , 5 ]

  ];

  var ws = XLSX.utils.aoa_to_sheet(ws_data);

  XLSX.utils.book_append_sheet(wb, ws, ws_name);

从一开始创建工作手册( 单击以显示细节)

工作手册对象包含一个名称阵列和一个将窗体名称映射到表格对象的对象。工具函数创建一个新的工作手册对象:

  var wb = XLSX.utils.book_new();

新的工作手册是空的,不包含工作手册。如果写入工作手册,写此函数时会出错。

  http://sheetjs.com/demos/modify.html read + modify + write files

  https://github.com/SheetJS/js-xlsx/blob/master/bin/xlsx.njs node

节点安装命令行工具,可以读取电子表格和输出各种格式。源代码可以在目录中找到。

。一些辅助功能产生不同的表视图。

生成 CSV 文件

UTF16 生成格式文本

生成 HTML

生成对象数组

生成一份公开列表

用于写入, 第一步是生成导出数据。 将生成适合分发的辅助函数和数据格式。 第二步是与端点共享实际数据。 假设是一个工作簿对象 。

NOdejs 写入文件( 单击以显示细节)

  uses in server environments:

  if(typeof require !== 'undefined') XLSX = require('xlsx');

  XLSX.writeFile(workbook, 'out.xlsb');

Photoshop 扩展SextScript 写入文件( 点击以显示细节)

将软件包放到 Photoshop 和其他扩展Script 目标中。 指定的路径应该是绝对路径 。

  #include "xlsx.extendscript.js"

  XLSX.writeFile(workbook, 'out.xlsx');

这些例子包括比较复杂的例子。

浏览器将“表表”元素添加到页面(单击以显示细节)

工具函数生成 HTML 代码,可添加到 DOM 元素中。

  var worksheet = workbook.Sheets[workbook.SheetNames[0]];

  var container = document.getElementById('tableau');

  container.innerHTML = XLSX.utils.sheet_to_html(worksheet);

浏览器上传文件 (ajax) (单击以显示细节)

实例中可以查看整个复杂的使用示例,也可以包括购置和包装库示例,该示例假设服务器可以处理Base64编码文件(见基本的模拟服务器示例)。

  var wopts = { bookType:'xlsx', bookSST:false, type:'base64' };

  var wbout = XLSX.write(workbook,wopts);

  var req = new XMLHttpRequest();

  req.open("POST", "/upload", true);

  var formdata = new FormData();

  formdata.append('file', 'test.xlsx'); // <-- server expects `file` to hold name

  formdata.append('data', wbout); // <-- `data` holds the base64-encoded data

  req.send(formdata);

浏览器保存文件( 点击以显示细节)

包含一些触发文件保存的方法 。

浏览器 API 为文件创建一个 URL 对象, 可以通过创建标签和添加点击事件来使用。 现代浏览器支持此方法 。

是 IE10 及以上用于触发文件保存的 API。

对于 Windows XP 和 Windows 7 中的 IE6 和 IE6 以上的浏览器,必须使用 VBScript 和 AmericanX 写入文件。 补充程序( Shim) 必须包含在包含 HTML 页面中 。

没有标准的方法来判断文档是否真实。

  XLSX.writeFile(workbook, 'out.xlsb');

浏览器保存文件( 兼容性) (单击以显示细节)

大多数现代浏览器和较老的浏览器都使用方法。对于较老的浏览器,有其他方法可以在包装库中应用。

执行方法。

注:如果方法可用,则自动调用。

  var wopts = { bookType:'xlsx', bookSST:false, type:'array' };

  var wbout = XLSX.write(workbook,wopts);

  saveAs(new Blob([wbout],{type:"application/octet-stream"}), "test.xlsx");

使用 Flash SWF 按钮生成本地文件, 即使在无法使用 AmericanX 的环境中 。

  Downloadify.create(id,{

  filename: "test.xlsx",

  data: function() { return XLSX.write(wb, {bookType:"xlsx", type:'base64'}); },

  append: false,

  dataType: 'base64'

  });

这个例子显示了 IE 背对背兼容的场景 。

包含的演示包括移动应用程序和其他专门部署。

http://shatejs.com/demos/table.html 导出一个 HTML 表格

http://shatejs.com/demos/writexlx.html 生成一个简单的文件

对象可以使用流程写函数。当前函数带有与正常函数相同的参数,但返回可读流。但是它们只在 Nodejs 中暴露。

是的,现在的版本。

是的,现在的版本。

是的,现在的版本。

将 Nodejs 转换为 CSV 并写入到文件( 单击以显示细节)

  var output_file_name = "out.csv";

  var stream = XLSX.stream.to_csv(worksheet);

  stream.pipe(fs.createWriteStream(output_file_name));

NOdejs 输出 JSON 流到屏幕( 单击以显示细节)

  var stream = XLSX.stream.to_json(worksheet, {raw:true});

  var conv = new Transform({writableObjectMode:true});

  conv._transform = function(obj, e, cb){ cb(null, JSON.stringify(obj) + "

  "); };

  stream.pipe(conv); conv.pipe(process.stdout);

https://github. com/shatejs/sheateaki pips 向节点响应书写流。

这是浏览器曝光的方法, 以及可以用于节点( 由建筑脚本添加) 的库版本。 它是格式化库的嵌入版本 。

用于解析数据 。

用于读取文件名称和解析 。 解析选项可在解析选项一节中描述 。

用于写入工作手册 。

写入特定文件。 如果基于浏览器环境, 此函数会迫使浏览器侧面下载 。

写入特定文件。 如果省略, 写入函数使用第三个参数作为回声函数 。

包含一组流动写作功能。

书写选项在书写选项一节中介绍。

可使用对象中的工具功能,工具功能部分将描述工具功能。

导入 :

将 JS 数据的阵列转换成工作表 。

将 JS 对象矩阵转换为工作表 。

将 DOM 表单元素转换成工作表 。

将 JS 数据阵列的阵列添加到已有的工作表 。

将 JS 对象矩阵添加到已有的工作表 。

出口 :

将工作表转换为 JS 对象阵列。

生成分隔符的输出以分隔值。

为 UTF16 生成格式化文本。

生成 HTML 输出 。

生成公式列表( 配有值后退 ) 。

单元格和单元格地址的操作:

生成文本类型的单元格值(以数字格式)。

在 0 索引行和 1 索引行之间转换。

在 0- index 列和列表之间转换 。

转换单元格地址。

转换单元格范围。

js-xlxx对应于共同数据表格式(CSF)。

单元格地址对象以代表 0 索引列和行号的格式存储。例如,单元格地址以对象表示。

单元格区域对象以格式存储,第一个单元格和最后一个单元格。区域包含关系。例如,区域以对象表示。在通过数据表格的范围时,工具函数执行行优先命令。

  for(var R = range.s.r; R <= range.e.r; ++R) {

  for(var C = range.s.c; C <= range.e.c; ++C) {

  var cell_address = {c:C, r:R};

  var cell_ref = XLSX.utils.encode_cell(cell_address);

  }

  }

电池用于纯粹的联署材料目标,钥匙和价值遵循以下协议:

  Key

  Description

原始值(详情见数据类型部分)

格式化文本(如果适用)

内含:布林、错误、编号、日期、日期、文本、斯图

单元格公式编码 A1 样式中的字符串( 如果您可以使用)

如果公式是数组公式,则数组的范围被环绕(如果适用)

丰富的文本编码( 如果有的话)

向 HTML 提交内容丰富的文本(如果有的话)

与单元格相关的注释

与单元格相关的数字格式字符串(必要时)

单元格的超链接对象(长链接、提醒)

单元格样式/主题(如果适用)

如果文本可以使用, 内置导出工具( 如 CSV 导出方法) 将使用它。 要更改单元格的值, 请在要导出前确保将其删除( 或设置) 。 工具函数将根据数字格式( ) 和原始值( 如果有的话) 重新生成文本 。

实际数组公式存储在数组区域中第一个单元格的字段中。此区域中的其他单元格则略去字段。

原始值存储在价值属性中,以解释基于类型属性。在显示数字和数字类型文本时允许进行这种区分。下面有6个有效的单元格类型。

  Type

  Description

布尔:价值可理解为联署材料

错误:数字类型数值编码,属性存储共同名称**

数目:价值 JS**

日期:价值是JS对象或字符串,以日期分类**

案文:价值可理解为联署材料,并写成案文**

Stub:数据处理工具功能忽略的空白子电池**

错误值和意义(单击以显示细节)

  Value

错误含义

数字类型。包括以Excel编号存储的所有数据表格,如日期/时间和布尔域。Excel使用IEE754浮标(如JS编号)可以表示的数据,因此字段保存原始数字。字段保留格式化文字。

类型日期类型 表示日期类型 只有在选择了该选项时才生成日期类型 。 由于 JSON 没有正常的日期类型, 它想要在求解器中存储的日期字符串与从它获得的日期字符串相同 。 另一方面, 写入和导出函数也可以处理日期字符串和 JS日期对象 。 注意 Excel 忽略时区修改符和处理所有本地时区日期 。 代码库不纠正此错误 。

。根单元格生成时,单元格不是指定给指定值,而是保留注释或其他元数据。根单元格被核心库的数据处理工具功能忽略。根单元格不是默认生成的,而是在设置了分析器选项时才生成的。

日期 日期 日期 日期 日期 日期 日期 日期 日期 日期 日期

Excel 日期编码细节(单击以显示细节)

默认情况下,Excel将日期作为数字存储,并使用指定日期处理格式代码。例如,日期作为数字存储,数字格式是。模块理解数字格式,并适当转换。

XSLX 也支持特定的日期类型, 数据为 ISO 8601 日期字符串。 格式化工具返回日期为数字 。

所有解析器的默认值是生成多个单元格。 设置为 True 强制显示发电机存储日期 。

时区和日期(单击以显示细节)

Excel没有通用时间的原始概念,所有时间都在当地时区指定。Excel限制指定一个真正的绝对日期。

对于下文的Excel,代码图书馆认为所有日期均与当地时区相对应。

周期: 1900 和 1904 (单击以显示细节)

Excel支持两个时期(1,1,900年和1,1904年1,1904年1月和1,1904年1月),查看“1,900年对1904年日期系统”的文章。

  !!(((wb.Workbook||{}).WBProps||{}).date1904)

每个非启动密钥地图都显示为单元格( 匹配) 。 返回指定地址的单元格对象 。

指定数据表属性( 以访问方式, 以下列方式开始) :

: A-1 的范围以代表数据表的范围为基础。操作数据表的功能应使用此参数来确定操作范围。在此范围以外的单元格将不予处理。特别是,当数据表是手动编制的时,范围以外的单元格将不包括在内。

处理表格的函数应检测是否存在。如果该函数被忽略或不是一个有效的区域,则该函数可以被描述为空或试图猜测范围。附于词汇表的工具函数将工作表作为空(例如,CSV的输出是一个空字符串)。

当使用属性集读取工作表时,ref 参数使用限制范围。设定初始范围。

:对象代表页面的边距。默认值遵循 Excel 的正常设置。Excel 也有“宽度”和“窄度”的设置,但以原始尺寸存储。主要属性列于下表:

页面比值细节(单击以显示详细信息)

  key

  description

  "normal"

  "wide"

  "narrow"

  left margin (inches)

  right margin (inches)

  top margin (inches)

  bottom margin (inches)

  header margin (inches)

  footer margin (inches)

  ws["!margins"]={left:0.7, right:0.7, top:0.75,bottom:0.75,header:0.3,footer:0.3}

  ws["!margins"]={left:1.0, right:1.0, top:1.0, bottom:1.0, header:0.5,footer:0.5}

  ws["!margins"]={left:0.25,right:0.25,top:0.75,bottom:0.75,header:0.3,footer:0.3}

工作表对象

除基本数据表关键词外,表格中还添加了以下内容:

:返回列属性对象的数组。在实践中,列宽以统一的方式存储在文件中,宽度根据最大数字宽度(像素表示,最大交宽度为0-9)进行测量。在绘制时,列对象以字段存储像素的宽度、存储字符的宽度和字段的最大数字宽度。

:返回行属性对象的数组,在接下来的文档中加以描述。每个行属性的编码属性包括行高和可见度。

:返回与工作表中合并的单元格范围相对应的天体数组。纯文本格式不支持单元格的合并。如果合并单元格存在, CSV 导出将把所有单元格写入合并区域,从而确保合并时仅设置第一个单元格(左上角单元格)。

:写入数据表对象以保护属性。密钥指定支持密码保护数据表(XLSX/XLSB/XLS)的密码。写入函数使用 XOR 模糊。以下控制数据表保护 -- -- 数据表可以设置为特性,或设置为禁用功能。

工作表保护细节( 点击以显示细节)

  key

  feature (true=disabled / false=enabled)

  default

  Select locked cells

  enabled

  Select unlocked cells

  enabled

  Format cells

  disabled

  Format columns

  disabled

  Format rows

  disabled

  Insert columns

  disabled

  Insert rows

  disabled

  Insert hyperlinks

  disabled

  Delete columns

  disabled

  Delete rows

  disabled

  Sort

  disabled

  Filter

  disabled

  Use PivotTable reports

  disabled

  Edit objects

  enabled

  Edit scenarios

  enabled

:自动筛选以下模式:

  type AutoFilter = {

  ref:string; // A-1 based range representing the AutoFilter table range

  }

图表对象

图表作为标准数据表显示。要小心区分所设定的属性。

底部和底部数据指图表中的缓存数据。图表的第一行是底部标题。

宏对象

宏对象作为标准数据表显示。请注意,您将其与您设置的属性区分开来。

对话框对象

对话框对象作为标准数据表格显示。请注意,您将其与您设置的属性区分开来。

是工作手册中工作表的顺序列表。

返回代表工作表的对象。

是存储标准属性的对象。存储器自定义属性。由于 XLS 标准属性偏离 XLSX 标准,XLS 解释要存储在两个属性中的核心属性。

储存工作簿层面的属性 。

工作手册文件属性

各种文件格式对不同的文件属性使用不同的内置名称。工作手册中的对象被用来规范这些名称。

文件属性( 点击以显示细节)

  JS Name

  Excel Description

  Summary tab "Title"

  Summary tab "Subject"

  Summary tab "Author"

  Summary tab "Manager"

  Summary tab "Company"

  Summary tab "Category"

  Summary tab "Keywords"

  Summary tab "Comments"

  Statistics tab "Last saved by"

  Statistics tab "Created"

例如,为确定工作手册的标题属性:

  if(!wb.Props) wb.Props = {};

  wb.Props.Title = "Insert Title Here";

自定义属性被添加到工作手册中的对象 :

  if(!wb.Custprops) wb.Custprops = {};

  wb.Custprops["Custom Property"] = "Custom Value";

写入函数处理选项对象的密钥 :

  XLSX.write(wb, {Props:{Author:"SheetJS"}});

储存工作簿层面的属性 。

定义定义名称

是定义名称对象的天体数组,所有对象都有密钥:

定义名称属性( 点击显示)

  Key

  Description

名称范围。 数据表索引(0=第一章数据表)或(工作手册)

标准适用规则**

引用 A1 单元格样式 ()

评论意见(仅XLS/XLSX/XLSB)

Excel Excel 允许以相同名称定义两个表格区域。但表格区域的名称不能与工作手册区域的名称相冲突。写作功能不强制设置这样的限制 。

书视图

是带有密钥的天体阵列的工作手册视图。

  Key

  Description

如果值是真实的, 从左到右显示

混合书属性

  Key

  Description

  VBA Project Workbook Code Name

时间: 0/ false 1900 系统时间为 0/ false, 1900 系统时间为 1/ true 1904 系统时间为 1/ true

警告或删除存储的个人认证信息

即使你想将数据存储为基本特性,官方的Excel格式也会以不同的方式存储相同内容。预计解答器会从底文件格式转换为通用的电子表格格式。预计作者会将 CSF 格式转换为基本文件格式。

公式公式公式

A1 单元格样式字符串存储在字段中。虽然不同的文件格式以不同的方式存储文件格式,但所有这些格式都需要翻译。虽然以某些格式存储的公式具有等值铅,但 CSF 公式并不启动。

A1 = 1, A2 = 2, A3 = A1 + A2 显示(点击显示详情)

  {

  "!ref": "A1:A3",

  A1: { t:'n', v:1 },

  A2: { t:'n', v:2 },

  A3: { t:'n', v:3, f:'A1+A2' }

  }

共享公式被压缩, 每个单元格都有相应的公式。 撰写者通常不试图生成共享公式 。

有公式记录但没有数值的单元格按顺序排列,可以通过Excel和其他电子表格工具识别。这个代码库不会自动计算公式结果。例如,转到工作表。

没有已知值的公式( 单击以显示细节)

  {

  "!ref": "A1:A3",

  A1: { t:'n', v:3.14159 },

  A2: { t:'n', v:2 },

  A3: { t:'n', f:'BESSELJ(A1,A2)' }

  }

阵列公式公式

数组公式存储在数组左上角的单元格中。数组公式的所有单元格都有与该范围相应的字段。单单元格公式由存储在字段中的纯公式区分。

数组公式示例(单击以显示细节)

例如,为单元格编号组设定公式:

  worksheet['C1'] = { t:'n', f: "SUM(A1:A3*B1:B3)", F:"C1:C1" };

对于多个单元格的数组公式,每个单元格的数组范围相同,尽管只有第一个单元格指定公式。考虑:

  worksheet['D1'] = { t:'n', F:"D1:D3", f:"A1:A3*B1:B3" };

  worksheet['D2'] = { t:'n', F:"D1:D3" };

  worksheet['D3'] = { t:'n', F:"D1:D3" };

工具函数和编译器用于检查字段的存在,并忽略单元格中不包含起始单元格的任何可能的公式元素。这些函数不需要进行公式校验。

公式输出工具函数(单击以显示细节)

方法作为每种公式或数组公式的直线诞生。数组公式在表格中提供,而纯单元格则在表格中提供。请注意,字符串有一个与Excel 公式栏相一致的前缀符号。

公式文件格式细节( 单击以显示详细信息)

  Storage Representation

  Formats

  Read

  Write

  A1-style strings

  XLSX

  :o:

  :o:

  RC-style strings

  XLML and plain text

  :o:

  :o:

  BIFF Parsed formulae

  XLSB and all XLS formats

  :o:

  OpenFormula formulae

  ODS/FODS/UOS

  :o:

  :o:

由于Excel禁止单元格的名称与 A1 的名称或引用的 RC 式单元格相冲突,因此可能会发生不那么简单的积极变化。 DIFF 分辨率的公式必须明确删除。 OpenFormula 可以转换正则表达式 。

列属性

每个表格将有一个数组,如果扩展,它将是一个包含以下属性的集合:

  type ColInfo = {

  hidden?: boolean; // if true, the column is hidden

  wpx?: number; // width in screen pixels

  Width</span>?: number; // width in Excel's "Max Digit Width", width*256 is integral

  wch?: number; // width in characters

  MDW?: number; // Excel's "Max Digit Width" unit, always integral

  };

为什么有三种宽度类型? (单击以显示细节)

电子表格存储列的宽度有三种不同的宽度类型。

SYLK 和其他纯文本格式使用本地字符计算。 Visicc 和 Multiplan 等工具以字符为基础。字符的宽度与存储计算相同。这个传统也适用于 BIFF 格式。

电子表格ML(2003年)试图与 HTML 保持一致, 使整个文件的屏幕像素计数标准化。 列宽、 行高和其他测量使用像素。 当像素和字符数不匹配时, Excel 会循环结果 。

XLSX 内部将列的宽度以模糊的“ 最大数字宽度” 表格存储。 最大数字宽度是最大数的宽度, 通常“ 0” 字是最宽的。 内部宽度必须除以 256 整数倍。 ECMA-376 为像素和内部宽度之间的切换提供了一个公式。 这代表一种混合物 。

读函数试图填充所有三个属性。写入函数试图将指定值循环到所需的类型。为了防止潜在冲突,操作应先删除其他属性。在您更改像素宽度时,应包含、删除和属性。

执行细节( 单击以显示细节)

这些限制可能确定 MDW 不检查字体。 求解器猜测像素宽度, 从宽度转换为像素, 然后返回, 重复所有可能的 MDW, 选择 MDW 以最小化乡村服务 。 XLML 实际存储像素宽度, 所以假设它会向相反的方向运行 。

即使所有信息都具备,书面职能也按以下优先顺序排列:

如果有字段,则优先使用这些字段。

如果有字段,请使用这些字段。

如果有字段,请使用这些字段。

线条属性

如果在每一个电子表格中都存在数组, 它是一个包含属性的对象集合 :

  type RowInfo = {

  hidden?: boolean; // if true, the row is hidden

  hpx?: number; // height in screen pixels

  hpt?: number; // height in points

  level?: number; // 0-indexed outline / group level

  };

注:Excel UI 显示基准大纲水平、最高水平、外地储存基本大纲水平、最高水平。

已实现的详细细节(单击以显示详细细节)

Excel 以点数存储高行。 默认分辨率为 72 DPI 或 96 DPI, 所以像素和点应该相同大小。 分辨率可能不同, 因此图书馆可以将这些概念分开 :

即使所有资料都已提供,写作职能也应遵循以下优先顺序:

(1) 如果有的话,使用像素高度。

(2) 如果有的话,使用像素高度。

数字格式

对于每个单元格,文本来自格式和格式。如果格式未指定,则使用Excel格式。格式在格式表格中要么是指定的字符串,要么是索引。分析器应填入数字格式表格。写入功能用于排列表格的顺序。

自定义工具应确保本地表格包含自己的格式字符串。 Excel同意自定义格式应从索引164开始。 以下示例从一开始就创建自定义格式 :

自定义格式的新工作手册( 单击以显示细节)

  var wb = {

  SheetNames: ["Sheet1"],

  Sheets: {

  Sheet1: {

  "!ref":"A1:C1",

  A1: { t:"n", v:10000 }, // <-- General format

  B1: { t:"n", v:10000, z: "0%" }, // <-- Builtin format

  C1: { t:"n", v:10000, z: ""T"\ #0.00" } // <-- Custom format

  }

  }

  }

这些规则和 Excel 的显示与自定义编号格式略有不同。 特别是, 文本字符必须包含在双引号或反斜线之前。 更多信息, 请查看 Excel 文档或 ECMA-376, 18. 8. 31 (数字格式) 。

默认数字格式(单击以显示细节)

ECMA-376 18.8.30中所列的默认格式:

  ID

  Format

  0

  1

  2

  3

  4

  9

  10

  11

  12

  13

  14

  (see below)

  15

  16

  17

  18

  19

  20

  21

  22

  37

  38

  39

  40

  45

  46

  47

  48

  49

格式 14 () 由 Excel 本地化 : 即使文件指定了数字格式, 也根据系统设置以不同方式绘制。 当文件的制作者和用户位于同一区域时, 这有用, 但网络上的例子不同 。 为了避免模糊, 解决方案函数接受对覆盖指定格式字符串的选项的解释 。

超超链接

超链接存储在单元格对象的关键字中。超链接对象字段是连接对象,包括 URL 段。工具提示存储在字段中,当鼠标移动到文字顶部时,将显示为工具提示。

例如,以下片段在单元格中创建链接,指向http://shatejs.com, 提示如下:

  ws['A3'].l = { Target:"http://sheetjs.com", Tooltip:"Find us @ SheetJS.com!" };

请注意,Excel不自动向超链接添加样式 -- -- 它们通常显示与普通文本相同的样式。

如果链接的目标是单元格或区域,或者在同一本工作手册(“内部链接”)中定义了名称,则该链接以哈希字符识别开头:

  ws['A2'].l = { Target:"#E2" };

单元格注释

单元格注释是一个存储在单元格对象数组中的对象。根据注释的作者,注释的内容实际上被分为块块。每个注释对象字段的作者存储该注释,该字段是注释的纯文本显示。

例如,以下各段在单元格中添加单元格注释:

  if(!ws.A1.c) ws.A1.c = [];

  ws.A1.c.push({a:"SheetJS", t:"I'm a little comment, short and stout!"});

注:XLSB 限制提交人的姓名为54个字符,名称长度超过54个字符可能会引起其他格式问题。

将注释标记为普通隐藏, 仅设置属性 :

  if(!ws.A1.c) ws.A1.c = [];

  ws.A1.c.push({a:"SheetJS", t:"This comment is visible"});

  if(!ws.A2.c) ws.A2.c = [];

  ws.A2.c.hidden = true;

  ws.A2.c.push({a:"SheetJS", t:"This comment will be hidden"});

数据表可见度

Excel 支持在下面的制表栏中隐藏表格。 表格数据存储文件对 UI 使用不容易。 标准隐藏表格显示在 unlide 菜单中。 Excel 也有“ 隐藏” 表格, 无法在菜单中显示。 它只能通过 Vb 编辑器访问 。

可见性设置存储在表格属性数组的属性中。

更多信息(单击以显示详细信息)

  Value

  Definition

  0

  Visible

  1

  Hidden

  2

  Very Hidden

详情请访问https://rawgit.com/SheetJS/test_files/master/shates_visibility.xx。

  > wb.Workbook.Sheets.map(function(x) { return [x.name, x.Hidden] })

  [ [ 'Visible', 0 ], [ 'Hidden', 1 ], [ 'VeryHidden', 2 ] ]

非Excel 格式不支持“ 高级隐藏” 状态。 测试数据比较的最佳方法是检查属性是否合乎逻辑 :

  > wb.Workbook.Sheets.map(function(x) { return [x.name, !x.Hidden] })

  [ [ 'Visible', true ], [ 'Hidden', false ], [ 'VeryHidden', false ] ]

VBA 和宏观命令

VBA 宏命令存储在特殊的数据布束中, 当选定项目为真时, 该布束会暴露在工作簿中对象的属性中。 VBA 宏命令支持和格式。 如果布束存在于工作簿中, 并且与工作簿的名称相关, 则支持的格式写入函数会自动插入数据布束 。

自定义编码名称(单击显示)

书编码名称存储在框中。 Excel 默认会设置或翻译一个词组。 工作表和图表代号在工作表属性对象中。 宏和对话框数据表格将被忽略。

读和写入函数保护编码名称, 但是当 VBA 浮标添加到不同的工作簿中时, 编码名称必须手动设置 。

宏数据表格(单击以显示)

旧的 Excel 也支持不是 VBA 表格的宏观表格类型,而宏观表格则存储一些自动命令。它们会接触到所设置的对象。

工作手册中的测试宏命令(单击显示)

如果存在宏命令, 可以设置“ vbaraw” 字段, 测试很简单 :

  function wb_has_macro(wb) {

  if(!!wb.vbaraw) return true;

  const sheets = wb.SheetNames.map((n) => wb.Sheets[n]);

  return sheets.some((ws) => !!ws && ws['!type']=='macro');

  }

导出函数接受选项参数 :

  Option Name

  Default

  Description

输入数据编码(见下文输入类型)

  false

如果这是真的,纯文字分析不会分析 **

如果具体指定,酌情使用代码页**

  true

将公式保存到字段

  true

解析丰富的文本并将 HTML 保存到字段

  false

以数字格式保存字符串到字段

  false

保存样式/主题到字段

  true

生成格式化文本字段

  false

与类型一样存储日期( 默认为)

如果指定指定, 请在代码日期 14 中使用字符串 **

  false

为子单元格创建单元格对象类型

  0

如果值 > 0,读取第一行**

  false

值是 True, 分析计算链

  false

如果值为 True**, 将原始文件添加到工作簿对象

  false

如果价值是真实的,只有有足够的决议** 才能获得工作手册元数据。

  false

如果值为 True,只有足够分辨率才能获得表格名称

  false

如果值属实, 复制 VBA 浮标到字段**

  ""

如果定义了密码并加密了文件,将使用密码**

  false

如果值为 True,则错误被丢入意外文件属性**

格式化文本也生成并保存到字段中,尽管它是假的。

在某些情况下,即使出现虚假情况,表格也可能被拆分。

Excel积极尝试从 CSV 和其他纯文本中解释值。 这导致意外行为! 选项会抑制值 。

并结合提供两套信息。

如果是假的, 将会是空的天体 。

行为取决于文档类型 :

基于 ZIP 格式化的阵列( ZIP 中的路径)

ZIP的桥

用于使用 CFO 容器的物体格式

它将在查看 JSON 对象输出时生成( 因为当数据解析时, 数据页眉将被计为行) 。

仅显示原始的 VBA CBB 对象。 未解析的数据。 XLSM 和 XLSB 存储 VBA CBB 对象。 BIFF8 XLS 将 VBA 条目与核心工作簿条目混在一起,因此图书馆从 XLS CBB 容器中生成一个新的与 XLSB 兼容的与 XLSB 兼容的空格。

用于未录制的 BIFF2-BIFF5 文件以及没有BOM的 CSV 文件。

目前只支持 XOR 加密。 当文件使用另一种加密方法时会发生不支持的错误 。

WTF 主要用于开发 。 默认情况下, 在单张工作表中, 解析器会抑制读取错误, 并允许您从解析正确工作表中读取错误 。 设置强制将这些错误丢弃 。

字符串可以多种方式解释。 参数告诉库如何解释数据参数:

  expected input

字符串: 文件的 Base64 编码

字符串: 二进制字符串( 字节是是)

字符串: JS 字符串( 字符被解释为 UTF8)

  nodejs Buffer

数组: 8 位数未符号的 8 位数整数阵列( 位数是 )

字符串:要读取的文件路径( 仅在 nodejs 中可用)

已实现的详细细节(单击以显示详细细节)

Excel 和其他电子数据表格工具读取第一个字节, 并应用测试方法确定稳定类型。 此双栏支持文件类型: 扩展的重命名文件指示您计算机使用 Excel 打开文件, Excel 知道如何处理。 此库使用类似的逻辑 :

  Byte 0

  Raw File Type

  Spreadsheet Types

  CFB Container

  BIFF 5/8 or password-protected XLSX/XLSB or WQ3/QPW

  BIFF Stream

  BIFF 2/3/4/5

  XML/HTML

  SpreadsheetML / Flat ODS / UOS1 / HTML / plain text

  ZIP Archive

  XLSB or XLSX/M or ODS or UOS2 or plain text

  Plain Text

  SYLK or plain text

  Plain Text

  DIF or plain text

  UTF8 Encoded

  SpreadsheetML / Flat ODS / UOS1 / HTML / plain text

  UTF16 Encoded

  SpreadsheetML / Flat ODS / UOS1 / HTML / plain text

  Record Stream

  Lotus WK* or Quattro Pro or plain text

  Plain text

  RTF or plain text

  Plain text

  SpreadsheetML / Flat ODS / UOS1 / HTML / plain text

  Plain text

  SpreadsheetML / Flat ODS / UOS1 / HTML / plain text

  Plain text

  SpreadsheetML / Flat ODS / UOS1 / HTML / plain text

DBF文件根据第一字节和第三和第四字节(文件日期的月份和日期)进行测试。

纯粹文本格式的投机行为按以下优先顺序排列:

  Format

  Test

  XML

在前1024个字符中

  HTML

以启动开始, HTML 标记出现在上1024个字符中*

  XML

开始于

  RTF

开始于

  DSV

开始时,分隔符是指定的字符串

  DSV

前一 1024 个字符中未引用的字符多于或多于字符

  TSV

前面的 1024 个字符中未引用的字符更多

  CSV

前1024名人物中的一个是逗号。

  ETH

将联系人移至(_V)...

  PRN

(默认)

HTML 标签包括:,,,,,,,,,,,,,

为什么随机文本文件有效? (单击以显示细节)

Excel非常活跃地阅读文档。 在任何显示文件中添加 XLS, 所以 Excel 认为它可能是 CSV 或 TSV 文件, 即使它只是一个专栏! 本库试图复制该行为 。

这样做的最好方式是核查所需工作表,确保有理想的行数或列数。

  var range = XLSX.utils.decode_range(worksheet['!ref']);

  var ncols = range.e.c - range.s.c + 1, nrows = range.e.r - range.s.r + 1;

导出函数接受一个可选参数 :

  Option Name

  Default

  Description

输出数据编码(见下文输出类型)

以类型( 默认为) 存储字节( 默认为)

生成共享字符串表格**

工作手册类型(见下文支持的格式)

单页格式的工作表名称**

使用基于ZIP格式的ZIP压缩**

写入时覆盖工作手册的属性 **

向 XLSX/ XLSB/ XLSM 写入时覆盖主题 XML **

禁用“ 以文本编号” 错误**

更慢,记忆密集,但更符合旧的iOS版本。

原始数据存储时唯一存储的东西。 在 README 文件中没有描述的功能可能无法排序 。

仅对 XLSX 输出而言,不能保证与第三方读者合作。 Excel 并不总是按类型写单元格, 所以非Excel 工具忽略数据或存在日期错误 。

是备份工作手册字段的对象。从工作手册文件属性的部分查看表格。

如果指定的话, 字符串将存储为 XLSX/ XLSB/ XLSM 文件( 在 ZIP) 的基本主题 。

由于程序中有错误, 某些函数, 如“ 单独 ”, 导致 Excel 崩溃在工作表上, 忽略错误的条件。 默认情况下, 写入函数会标记文件是否忽略错误。 设置此选项禁止它 。

此库支持多种输出格式。 清除文件类型由选项控制 :

  file ext

  container

  sheets

  Description

  ZIP

  multi

2007+XML格式(XML格式)

  ZIP

  multi

2007+Macro XML 格式(大型XML格式)

  ZIP

  multi

Excel 2007+二进制格式(二进制格式)

  CFB

  multi

97-2004年ExcEx 97-2004 Workset格式(工作手册格式)

  CFB

  multi

Excel 5.5/95 工作表格式(工作手册格式)

  none

  single

Excel2.0工作套格式(工作手册格式)

  none

  multi

  Excel 2003-2004 (SpreadsheetML)

  ZIP

  multi

OpenDocument 电子表格(开放文档格式电子表格)

  none

  multi

平板 OpenDocument 电子表格(以开放文档格式的平滑电子表格)

  none

  single

逗号分隔值( coma 分隔符)

  none

  single

  UTF-16 Unicode Text (TXT)

  none

  single

  Symbolic Link (SYLK)

  none

  single

  HTML Document

  none

  single

数据交换格式(数据交换格式)

  none

  single

dBASE II+VFP推广(DBSE II+VFP推广)

  none

  single

  Rich Text Format (RTF)

  none

  single

Lotus格式文本( Lotus 格式文本) 。

  none

  single

经济记录格式(ETH)(电子记录格式)

仅用于ZIP容器格式。

只格式化需要选项以指定工作表的工作表。如果字符串为空,则使用第一个工作表。

如果未指定值,则从文件扩展名中自动推断输出文件格式。他选择第一个格式来匹配上表中的扩展名。

函数的参数备份函数 :

  output

字符串: 文件的 Base64 编码

字符串: 二进制字符串( 字节是是)

字符串: JS 字符串( 字符被解释为 UTF8)

  nodejs Buffer

ArrayBuffer, 8 位无符号整数回归数组

字符串:要创建文件的地址( 仅NOdejs)

函数接受工作表和可选对象。

函数接受数据对象和可选对象。

这些例子以下列表格为基础:

  XXX| A | B | C | D | E | F | G |

  ---+---+---+---+---+---+---+---+

  1 | S | h | e | e | t | J | S |

  2 | 1 | 2 | 3 | 4 | 5 | 6 | 7 |

  3 | 2 | 3 | 4 | 5 | 6 | 7 | 8 |

获取 JS 值矩阵的阵列, 并返回一个工作表以查找输入数据。 数字、 布尔和字符串作为相应的样式存储。 日期作为日期或编号存储。 跳过阵列洞并显示 " 未定义 " 值。 数值可以被切除。 所有其他值作为字符串存储。 函数抓取选项参数 :

  Option Name

  Default

  Description

  FMT 14

字符串输出使用特定日期格式

  false

与类型一样的存储日期(默认为)

  false

为值创建类型的单元格对象

示例(单击以显示)

生成示例工作表 :

  var ws = XLSX.utils.aoa_to_sheet([

  "SheetJS".split(""),

  [1,2,3,4,5,6,7],

  [2,3,4,5,6,7,8]

  ]);

获取 JS 值的数组并更新已有的工作表对象。 它遵循相同的进程并接受一个选项参数 :

  Option Name

  Default

  Description

  FMT 14

字符串输出使用指定的日期格式

  false

与类型一样的存储日期(默认为)

  false

为值创建类型的单元格对象

只使用指定的单元格作为指定的起点(见下表)

它应该包括以下内容之一:

  Description

  (cell object)

使用指定的单元格( 单元格对象)

  (string)

使用指定的单元格( A1 样式中的单元格)

  (number >=0)

以指定行第一列( 0 指数) 开始

  -1

从工作表第一列添加到工作表底部

  (default)

以单元格 A1 开始

示例(点击显示)

考虑工作表 :

  XXX| A | B | C | D | E | F | G |

  ---+---+---+---+---+---+---+---+

  1 | S | h | e | e | t | J | S |

  2 | 1 | 2 | | | 5 | 6 | 7 |

  3 | 2 | 3 | | | 6 | 7 | 8 |

  4 | 3 | 4 | | | 7 | 8 | 9 |

  5 | 4 | 5 | 6 | 7 | 8 | 9 | 0 |

此工作表可按顺序构建 :

  var ws = XLSX.utils.aoa_to_sheet([ "SheetJS".split("") ]);

  XLSX.utils.sheet_add_aoa(ws, [[1,2], [2,3], [3,4]], {origin: "A2"});

  XLSX.utils.sheet_add_aoa(ws, [[5,6,7], [6,7,8], [7,8,9]], {origin:{r:1, c:4}});

  XLSX.utils.sheet_add_aoa(ws, [[4,5,6,7,8,9,0]], {origin: -1});

获取对象数组并返回一个基于对象自动生成“页眉”的工作表。默认的列顺序由第一次字段确定,该字段是通过使用获得的,尽管您可以覆盖选项参数。

  Option Name

  Default

  Description

使用指定的列顺序( 默认)

  FMT 14

字符串输出使用指定的日期格式

  false

与类型一样的存储日期(默认为)

  false

如果值为 True,输出不包含页头行

示例(点击显示)

原始表格不能以明确的方式复制,因为联署材料对象的钥匙必须是独一无二的。 将第二表和第二表替换为之后。

  var ws = XLSX.utils.json_to_sheet([

  { S:1, h:2, e:3, e_1:4, t:5, J:6, S_1:7 },

  { S:2, h:3, e:4, e_1:5, t:6, J:7, S_1:8 }

  ], {header:["S","h","e","e_1","t","J","S_1"]});

或者你可以跳过头条线:

  var ws = XLSX.utils.json_to_sheet([

  { A:"S", B:"h", C:"e", D:"e", E:"t", F:"J", G:"S" },

  { A: 1, B: 2, C: 3, D: 4, E: 5, F: 6, G: 7 },

  { A: 2, B: 3, C: 4, D: 5, E: 6, F: 7, G: 8 }

  ], {header:["A","B","C","D","E","F","G"], skipHeader:true});

获取对象数组并更新已有的工作表对象。有相同的进程并接受一个选项参数:

  Option Name

  Default

  Description

使用指定的列排序( 默认)

  FMT 14

字符串输出使用指定的日期格式

  false

将存储日期设为类型( 默认为)

  false

如果值为 True,输出不包含页头行

使用指定的单元格作为起点(见下表)

它应该包括以下内容之一:

  Description

  (cell object)

使用指定的单元格( 单元格对象)

  (string)

使用指定的单元格( A1 样式中的单元格)

  (number >=0)

以给定行第一列( 0 指数) 开始

  -1

从工作表第一列添加到工作表底部

  (default)

以单元格 A1 开始

示例(点击显示)

考虑工作表 :

  XXX| A | B | C | D | E | F | G |

  ---+---+---+---+---+---+---+---+

  1 | S | h | e | e | t | J | S |

  2 | 1 | 2 | | | 5 | 6 | 7 |

  3 | 2 | 3 | | | 6 | 7 | 8 |

  4 | 3 | 4 | | | 7 | 8 | 9 |

  5 | 4 | 5 | 6 | 7 | 8 | 9 | 0 |

工作表可按顺序排列:

  var ws = XLSX.utils.json_to_sheet([

  { A: "S", B: "h", C: "e", D: "e", E: "t", F: "J", G: "S" }

  ], {header: ["A", "B", "C", "D", "E", "F", "G"], skipHeader: true});

  XLSX.utils.sheet_add_json(ws, [

  { A: 1, B: 2 }, { A: 2, B: 3 }, { A: 3, B: 4 }

  ], {skipHeader: true, origin: "A2"});

  XLSX.utils.sheet_add_json(ws, [

  { A: 5, B: 6, C: 7 }, { A: 6, B: 7, C: 8 }, { A: 7, B: 8, C: 9 }

  ], {skipHeader: true, origin: { r: 1, c: 4 }, header: [ "A", "B", "C" ]});

  XLSX.utils.sheet_add_json(ws, [

  { A: 4, B: 5, C: 6, D: 7, E: 8, F: 9, G: 0 }

  ], {header: ["A", "B", "C", "D", "E", "F", "G"], skipHeader: true, origin: -1});

获取表格 DOM 元素并返回工作表以查找可输入的表格。数字已解析。所有数据将作为字符串存储。

创建基于工作表的最低限度工作手册。

两个函数接受选项参数 :

  Option Name

  Default

  Description

如果值为 True, 每个单元格将保存原始字符串

  FMT 14

字符串输出使用指定的日期格式

  false

与类型一样存储日期( 默认为)

  0

如果值 > 0 值,读取表格的第一行

  false

如果值为 True,隐藏的行和单元格将不会被解析

示例(单击以显示)

从 HTML 表格开始生成示例表 :

  

  

  

  

  

SheetJS
1234567
2345678

处理表:

  var tbl = document.getElementById('sheetjs');

  var wb = XLSX.utils.table_to_book(tbl);

N.B. 能够处理HTML, 以字符串表示。

生成一个命令矩阵,以显示一个人如何进入应用程序。每个条目都是表格。字符串文字前缀为“`'和匹配 Excel 。

示例(单击以显示)

示例表:

  > var o = XLSX.utils.sheet_to_formulae(ws);

  > [o[0], o[5], o[10], o[15], o[20]];

  [ 'A1=\'S', 'F1=\'J', 'D2=4', 'B3=3', 'G3=8' ]

用 CSV 输出替换 CSV 类型。 此函数包含一个选项参数 :

  Option Name

  Default

  Description

“字段分隔符”是指字段之间的分隔符

“记录分隔符”是指行之间的分隔符

  FMT 14

字符串输出使用指定的日期格式

  false

从每个记录中删除尾巴字段分隔符**

  true

含有 CSV 输出的空白线

  false

从 CSV 输出中跳过隐藏行/列

删除默认的每行的下列逗号

必须设定跳过空白线。

示例(单击以显示)

示例表:

  > console.log(XLSX.utils.sheet_to_csv(ws));

  S,h,e,e,t,J,S

  1,2,3,4,5,6,7

  2,3,4,5,6,7,8

  > console.log(XLSX.utils.sheet_to_csv(ws, {FS:" "}));

  S h e e t J S

  1 2 3 4 5 6 7

  2 3 4 5 6 7 8

  > console.log(XLSX.utils.sheet_to_csv(ws,{FS:":",RS:"|"}));

  S:h:e:e:t:J:S|1:2:3:4:5:6:7|2:3:4:5:6:7:8|

□ UTF-16 Unicode 文本

输出类型使用制表符字符作为字段分隔符。如果可用(包括所有分布,但不包括核心),输出将被编码和 BOM 预设。

获得相同的参数 。

此函数还生成 HTML 输出, 作为“ writefile” HTML 类型的替代。 此函数接受一个选项参数 :

  Option Name

  Default

  Description

指定元素的特性

  false

如果值为 True, 设置每个 TD

覆盖头( 默认)

覆盖页脚( 默认)

示例(单击以显示)

示例表:

  > console.log(XLSX.utils.sheet_to_html(ws));

  // ...

生成不同类型的 JS 对象。 此函数接受一个选项参数 :

  Option Name

  Default

  Description

使用本地值( true) 或格式字符串( false)

  from WS

覆盖范围(下图)

控制输出格式(见下表)

  FMT 14

字符串输出使用指定的日期格式

替换为指定值的空或未定义

  **

Evolution 日历异常退出。

只有那些有格式化编码()字段或格式化文本()字段的单元格。

如果指定,第一行将被当作数据行处理;如果没有,第一行是页眉,不作为数据。

当标题未指定时, 转换将自动通过添加“ _” 和以“ 1” 开始的计数来消除标题条目的模糊性。 例如, 所有标题都有三列, 所以输出字段是,

当值返回时,当值为真时,值错误会被跳过。

如果您没有指定, 您通常会被跳过, 并且会被跳过。 如果您有指定值, 所有的白金都会被填充 。

当它是时, 默认会创建空白行。 必须设置它以跳过空白行 。

否,默认会跳过空白行。必须设置以创建空白行。

它包括以下内容之一:

  Description

  (number)

使用工作表范围,但为数值设定起始线

  (string)

使用指定区域( a1 大小字符串)

  (default)

使用工作表范围 ()

它包括以下内容之一:

  Description

生成数组类型(“二维阵列”)的阵列

线条对象的密钥是文本的栏标题。

  array of strings

在行对象中使用指定的字符串作为密钥

  (default)

将第一行的模糊性作为密钥读取并删除

如果没有,该对象将包含不可量化的属性 " rowNum ",即与条目相对应的工作表行。

示例(点击显示)

示例表:

  > XLSX.utils.sheet_to_json(ws);

  [ { S: 1, h: 2, e: 3, e_1: 4, t: 5, J: 6, S_1: 7 },

  { S: 2, h: 3, e: 4, e_1: 5, t: 6, J: 7, S_1: 8 } ]

  > XLSX.utils.sheet_to_json(ws, {header:"A"});

  [ { A: 'S', B: 'h', C: 'e', D: 'e', E: 't', F: 'J', G: 'S' },

  { A: '1', B: '2', C: '3', D: '4', E: '5', F: '6', G: '7' },

  { A: '2', B: '3', C: '4', D: '5', E: '6', F: '7', G: '8' } ]

  > XLSX.utils.sheet_to_json(ws, {header:["A","E","I","O","U","6","9"]});

  [ { '6': 'J', '9': 'S', A: 'S', E: 'h', I: 'e', O: 'e', U: 't' },

  { '6': '6', '9': '7', A: '1', E: '2', I: '3', O: '4', U: '5' },

  { '6': '7', '9': '8', A: '2', E: '3', I: '4', O: '5', U: '6' } ]

  > XLSX.utils.sheet_to_json(ws, {header:1});

  [ [ 'S', 'h', 'e', 'e', 't', 'J', 'S' ],

  [ '1', '2', '3', '4', '5', '6', '7' ],

  [ '2', '3', '4', '5', '6', '7', '8' ] ]

示范效果实例:

  > ws['A2'].w = "3"; // set A2 formatted string value

  > XLSX.utils.sheet_to_json(ws, {header:1, raw:false});

  [ [ 'S', 'h', 'e', 'e', 't', 'J', 'S' ],

  [ '3', '2', '3', '4', '5', '6', '7' ], // <-- A2 uses the formatted string

  [ '2', '3', '4', '5', '6', '7', '8' ] ]

  > XLSX.utils.sheet_to_json(ws, {header:1});

  [ [ 'S', 'h', 'e', 'e', 't', 'J', 'S' ],

  [ 1, 2, 3, 4, 5, 6, 7 ], // <-- A2 uses the raw value

  [ 2, 3, 4, 5, 6, 7, 8 ] ]

虽然图书馆的名称是“图书馆”的名称,但它支持多个电子表格文件格式:

  Format

  Read

  Write

  Excel Worksheet/Workbook Formats

  :-----:

  :-----:

  Excel 2007+ XML Formats (XLSX/XLSM)

  :o:

  :o:

  Excel 2007+ Binary Format (XLSB BIFF12)

  :o:

  :o:

  Excel 2003-2004 XML Format (XML "SpreadsheetML")

  :o:

  :o:

  Excel 97-2004 (XLS BIFF8)

  :o:

  :o:

  Excel 5.0/95 (XLS BIFF5)

  :o:

  :o:

  Excel 4.0 (XLS/XLW BIFF4)

  :o:

  Excel 3.0 (XLS BIFF3)

  :o:

  Excel 2.0/2.1 (XLS BIFF2)

  :o:

  :o:

Excel 支持的文本格式

  :-----:

  :-----:

分隔值(划界分隔值值)(CSV/TXT)

  :o:

  :o:

数据交换格式(DIF)

  :o:

  :o:

符号链接 (SyLK/SLK)

  :o:

  :o:

Lotus 格式化文本( 文本以莲体格式) (PRN)

  :o:

  :o:

  UTF-16 Unicode Text (TXT)

  :o:

  :o:

其他工作手册/表格格式

  :-----:

  :-----:

OpenDocument 电子表格(开放文档格式电子表格)(ODS)

  :o:

  :o:

  Flat XML ODF Spreadsheet (FODS)

  :o:

  :o:

统一办公室格式电子表格(UT1/UOS2)

  :o:

  dBASE II/III/IV / Visual FoxPro (DBF)

  :o:

  :o:

  Lotus 1-2-3 (WKS/WK1/WK2/WK3/WK4/123)

  :o:

  Quattro Pro Spreadsheet (WQ1/WQ2/WB1/WB2/WB3/QPW)

  :o:

其他常用的电子电子表格输出格式

  :-----:

  :-----:

  HTML Tables

  :o:

  :o:

丰富文本表格(RTF)

  :o:

其他计算器记录表表(电子计算记录格式)(ETH)

  :o:

  :o:

不写入不为给定文件格式支持的函数。 带有范围限制的格式将被静悄悄地切除 :

  Format

  Last Cell

  Max Cols

  Max Rows

  Excel 2007+ XML Formats (XLSX/XLSM)

  XFD1048576

  16384

  1048576

  Excel 2007+ Binary Format (XLSB BIFF12)

  XFD1048576

  16384

  1048576

  Excel 97-2004 (XLS BIFF8)

  IV65536

  256

  65536

  Excel 5.0/95 (XLS BIFF5)

  IV16384

  256

  16384

  Excel 2.0/2.1 (XLS BIFF2)

  IV16384

  256

  16384

2003年Excel电子表格的范围受Excel版本的限制,不以书面功能强制执行。

(点击显示)

XLSX和XLSM文件是ZIP包装中的一系列文件,符合开放源包装协定(开放包装公约,OPC),大多数XLSM文件的格式与XLSX相同,用作含有宏命令的文件。

ECMA-376和随后ISO/IEC 29500的ECMA-376对这一格式进行了标准化。 Excel没有遵循这一规范,还有其他文件讨论Excel的偏差。

(点击显示)

BIFF 2/3 XLS是二进制记录的单一流程。 Excel 4描述了工作手册的原则,但只有单一的工作手册格式。 结构与Lotus 1-2-3文件格式非常相似。 BIFF5/8/12以各种方式扩展了格式,尽管在很大程度上保持了相同的记录格式。

这些格式没有正式的规格。 Excel 95可以以这些格式书写文件,因此记录和字段的长度由所有支持的格式和比较文件决定。 Excel 2016可以生成BIFF5文件,从 XLSX 或 BIFF2 开始。

(点击显示)

BIFF8仅使用混合二进制集装箱格式,并在文件流中放置一些内容。 它的核心是使用旧版本的BIFF二进制记录格式的扩展版本。

规范涵盖文件格式的基础,其他规范扩展了属性标准化(例如特性)。

(点击显示)

在 XLSX 之前, 电子表格ML 文件是一个简单的 XML 文件。 虽然MS 已经为此格式发布了文件, 但是没有正式和全面的规定 。 因此 Excel 2016 生成了带有非常简单的映射功能的电子表格文件 。

(点击显示)

XLSB格式与XLSX平行采用,将BIFF结构与内容分离和XLSX的ZIP容器合并。 XLSX 子文件的大多数节点可以绘制在XLSB记录的相应子文件中。

规范包含文件格式的基础,而其他规范则扩展属性的顺序(例如特性)。

(点击显示)

ExcelSV 在许多重要方面偏离 RFC 4180 。 生成的 CSV 文件通常应以Excel 运行, 但无法运行 RFC 4180 兼容的阅读器。 分析器通常理解 Excel CSV 。 如果没有数值, 写器会生成公式单元格 。

Excel TXT 使用标签作为分隔符,代码第1200页。

注:

与 Excel 一样, 开始的文件被当作符号链接文件处理 。 与 Excel 不同, 如果文档没有有效的 SyLK 标题, 他将被主动解读为 SYLK 文件 。 如果具有广泛兼容性, 所有带有数值的单元格都会自动用双引号包装 。

(点击显示)

对其他格式的支持通常远远超出对XLS/XLSB/XLSX的支持,这主要是由于缺少公开的文件,文件通常在各自的应用程序中产生,并与出口文件进行比较以确定结构,主要关注的是数据的列报。

  Lotus 1-2-3 (WKS/WK1/WK2/WK3/WK4/123)

(点击显示)

Lotus格式包括类似于BIFF结构的二进制记录。Lotus在几十年前公布了包含原WK1格式的代码。

  Quattro Pro (WQ1/WQ2/WB1/WB2/WB3/QPW)

(点击显示)

Quattro Pro 使用二进制记录, 如 BIFF 和 Lotus 。 一些更新格式( 名为 WB3 和 QPW) 使用 CFO 附件, 如 BIFF8 XLS 。

OpenDocument 电子表格(开放文档格式电子表格)(ODS/FODS)

(点击显示)

正式文件系统是一种类似于XLSX的XML-ZIP格式,而FODS是一种类似于电子表格ML的XML格式。两种格式在OASIS标准中都有详细描述,尽管LO/OO等工具已被添加到一个未披露的扩展名中。 解析器和刻录器没有达到所有标准,而是侧重于提取和存储线条数据的重要部分。

单位办公室电子表格(统一办公室电子表格)(UNOS1/2)

(点击显示)

UOS是一种非常相似的格式,它有两种不同的格式,即ODS和FODS,在大多数情况下,格式之间的差异是标签的名称和属性。

大多数较旧的浏览器只支持一个工作表 :

  dBASE and Visual FoxPro (DBF)

(点击显示)

DBF实际上是一种输入表格格式:每列只保存一个数据类型,而每个记录忽略信息类型。分析器生成标题行,并开始在工作表第二行插入记录。作者使文件与视觉FoxPro兼容。

多个文件的扩展, 如内部示例和表格, 目前不支持, 并且受到在网络浏览器中阅读任何文件的正常能力的限制。 阅读者理解 DBF 7 级的扩展, 如 DATETIME 。

符号链接 (SylK)

(点击显示)

没有真实的文件。 将文件保存在Excel的不同版本中, 以收集所有知识来推断字段的含义。 注意 :

简单的公式以RC格式存储。

整列宽度四舍五入为整数字符。

  Lotus Formatted Text (PRN)

(点击显示)

没有真实的文档。 Excel实际上将 PRN 视为只能导出的文件格式。 但是, 我们可以猜测列宽, 并颠倒原始版式 。 Excel 240 字符宽度限制没有强制执行 。

数据交换格式(DIF)

(点击显示)

没有统一的标准定义。 Visiccal DIF不同于Lotus DIF,两者都不同于Excel DIF。 在不明确的情况下,分析员/撰写人遵循Excel的预期行为。 特别是,Excel以不兼容的方式扩展了DIF:

当Excel自动将数字字符串转换为数字时,数字字符串常数将转换为公式:

虽然Excel允许数字格式化(包括日期),但DIF在技术上期望数字单元格能够节省原始数字数据。

DIF 技术上不支持公式,但 Excel 转换简单公式。 数组公式没有保存 。

  HTML

(点击显示)

Excel HTML 工作表包含以样式编码的特殊元数据。 例如, “ mso- number- format” 是带有数字格式的本地字符串。 虽然元数据输出为有效的 HTML, 但他不接受空的'符号 。

刻录器通过在标签中添加类型元数据进入 TD 元素。 求解器检查标签并覆盖默认解释。 例如, 文本将被解析成数字, 但将被解析成文本 。

丰富文本格式 (TRTF)

(点击显示)

Excel RTF 工作表在工作表中复制单元格或区域时存储在剪贴板上。支持的编码是 RTF 支持的单词的子集。

  Ethercalc Record Format (ETH)

(点击显示)

Ethercalc是一个公开来源的网络电子表格,由记录格式驱动,使人想起SYLK,它包含在MIME信息的许多部分。

(点击显示)

“ make test” 将运行节点基准测试。 默认情况下, 它将以多种支持格式运行文件。 要测试给定的文件类型, 请为您想要测试的类型设置“ FMTS ” 。 使用“ make test_ misc” 来运行指定的函数 。

  $ make test_misc # run core tests

  $ make test # run full tests

  $ make test_xls # only use the XLS test files

  $ make test_xlsx # only use the XLSX test files

  $ make test_xlsb # only use the XLSB test files

  $ make test_xml # only use the XML test files

  $ make test_ods # only use the ODS test files

要启用所有错误, 请设置环境变量 :

  $ make test # run full tests

  $ WTF=1 make test # enable all error messages

  and checks are available:

  $ make lint # eslint checks

  $ make flow # make lint + Flow checking

  $ make tslint # check TS definitions

(点击显示)

核心浏览器测试可在“ 测试/ index. html” 中找到。 激活本地服务器并浏览到该目录以运行测试 。 “ Make screenserv” 将在8080 端口启动服务 。

将生成浏览器设备。 要添加更多文件, 请编辑并添加路径 。

要从克隆此回邮中运行完整的浏览器内部测试并替换文件( 然后打开浏览器窗口并跳转到它) 。

  $ cp xlsx.js https://gitee.com/SheetJS.github.io

  $ cd https://gitee.com/SheetJS.github.io

  $ simplehttpserver # or "python -mSimpleHTTPServer" or "serve"

  $ open -a Chromium.app http://localhost:8000/stress.html

(点击显示)

  NodeJS , , , , , , ,

  IE 6/7/8/9/10/11 (IE 6-9 require shims)

  Chrome 24+ (including Android 4.0+)

  Safari 6+ (iOS and Desktop)

  Edge 13+, FF 18+, and Opera 12+

使用摩卡测试框架进行测试。 Travis-CI和Louise Labs链接:

http://travis-ci.org/SheetJS/js-xx 用于Nodejs XLSX 模块

https://semaphophoreci.com/shatejs/js-xx 用于Nodejs 中的 XLSX 模块

http://travis-ci.org/SheetJS/SheetJS.github.io 用于 XLS* 模块

http://saucelabs.com/u/sheechjs XLS* 用于食盐实验室的模块

Travis-CI测试组合还包括多个时区测试。

  $ env TZ="Asia/Kolkata" WTF=1 make test_misc

测试文件被密封在另一个仓库。

运行将刷新子模块并获取子模块的文件。 请注意, 这可能需要, 以及其它可能不可用的命令 。 如果此操作失败, 请从仓库下载文件测试快照的最新版本 。

最新快照(点击显示)

最新的测试文件快照 :

(下载和压抑到子目录)

由于开放规范性承诺的波动性,必须确保守则成为干净的场所。

文件组织(点击显示)

在最高层, 最终脚本是 `bits' 文件夹中的文件串。 运行“ make” 应该重复所有平台的最终输出 。 同样, README 也可以分为“ dodbits” 文件夹 。

没有文件夹“%s”:%s

  folder

  contents

构成最终脚本的原始文件

初始 Markdown 文件合并

Serverendbin 脚本 ()

用于 Web 浏览器和非标准 JS 环境的磁盘文件

诸如扩展Script和Webpack等平台的示范项目

浏览器测试 (运行- 构建)

标标定义和测试

各种支持性脚本

测试文件( 从测试文件仓库提取)

在克隆仓库之后,将显示命令列表。

(点击显示)

文件是从子目录的文件构建的。 构建脚本( 运行) 将连接到每个位置以生成脚本。 在提交贡献之前, 请在提交贡献前确保文件通过运行准确生成。 最简单的测试方法是添加以下脚本 :

  $ git add xlsx.js

  $ make clean

  $ make

  $ git diff xlsx.js

运行以生成一个 diste 文件。 diet 文件的每个版本都会更新, 并且不能在版本之间提交 。

(点击显示)

包含的脚本将从目录中构建。 构造简单 :

  > make

筹备发展环境:

  > make init

Windows 中可用命令的完整列表显示在 :

Make init -- -- 安装依赖和全球模块

让林特 - 运行

运行摩卡测试组合

Make misc -- -- 运行较小的测试组合

做书 -- 重建 REDDME 和 纸质

帮助 - - 显示命令信息

正如测试文档中所解释的, Windows 中 ZIP 文件的发布必须下载和提取。 如果 Bash 在 Windows 中可用, 它可能会运行 OSX/ Linux 工作流程。 以下步骤为环境做好准备 :

  # Install support programs for the build and test commands

  sudo apt-get install make git subversion mercurial

  # Install nodejs and NPM within the WSL

  wget -qO- https://deb.nodesource.com/setup_8.x | sudo bash

  sudo apt-get install nodejs

  # Install dev dependencies

  sudo npm install -g mocha voc blanket xlsjs

(点击显示)

`Test_micsc'(Linux/OSX使用`Make super_micsc'/窗口用`Make micsc'进行定向功能测试)在不测试整个测试单元格的情况下进行功能测试需要5-10秒时间。新的功能应伴之以对有关文件格式和功能的测试。

对于涉及阅读结尾的测试,合适的功能测试将包括读取现有文件和检查工作手册对象的结果。如果涉及参数,文件应读取不同的值,以确保函数按预期工作。

对于涉及已经可以解析的新写入函数的测试,适当的函数测试包括将此函数写入工作手册,然后打开并确认该函数已经保存。

对于涉及没有现有读能力的新写作功能的测试,应将功能测试添加到厨房水槽中。

欲了解更多详情,请查阅有关证书。

开放源码软件覆盖的规格(OSP覆盖的专用) (点击显示)

复杂文件二进制文件表格

Excel 自定义工具栏二进制文件格式 (Excel Cstom 工具栏二进制文件表格)

Excel 计算版本 2 网络服务 XML 结构 (Excel 计算版本 2 Web Service XML Schema)

: 开放数据协议(OData)

: office 绘图二进制文件格式( 办公室绘图二进制文件表格)

Office Open source XML 结构办公室

ECMA-376标准支助处执行资料

办公室文件加密结构

: ISO/IEC 29500(ISO/IEC 29500标准系统支助办公室应用程序信息)支助的执行信息

: 对象链接和嵌入(OLE)数据结构

: 对象链接和嵌入(OLE)财产数据集

ODF 1.2 标准支助

办公室:共同数据类型和用途结构

:VBA办公室文件结构

: 电子表格数据模型文件格式( 电子表格数据模型文件格式)

: Excel 二进制文件格式化 (.xls)

: Excel (.xlsb) 二进制文件格式

  : Excel (.xlsx) Extensions to the Office Open XML SpreadsheetML File Format

  : Microsoft Office Excel 97-2007 Binary File Format Specification

: 丰富文本格式

ISO/IEC 29500:2012(E) “信息技术 - 文件描述和处理语言 - Office 开源 XML 文件格式”

办公室应用程序 1.2 (2011/9/29) 开放源文件格式

工作表文件格式(来自Lotus) 1984年12月

文字格式和图片示例

注册有任何问题请添加 微信:MVIP619 拉你进入群

弹窗与图片大小一致 文章转载注明

分享:

扫一扫在手机阅读、分享本文

发表评论
热门文章
  • 以太坊区块链浏览器的搭建

    以太坊区块链浏览器的搭建
    环境;Ubuntu 首先需要下载git 参考链接:?http://www.360bchain.com/article/156.html??Environment; Ubuntu first needs to download git reference link: ˂a rel="noformlow" href="http://www.360bchai.com/article/156.html"? http://www.360bchai.com/article/156.htm...
  • 百度元宇宙希壤app官方下载

    百度元宇宙希壤app官方下载
    希壤元宇宙是一款非常好玩的休闲手游,这款游戏采用了元宇宙的游戏概念,超级自由的游戏玩法,在这里没有什么标准限定,你可以自由的在这里进行着一切你想做的事情,游戏比较的休闲和放松,没有什么操作难度,感兴趣的小伙伴们可以来007游戏网下载这款非常有趣的希壤元宇宙吧!˂a href=http://m.yx007.com/key/xxsy" target="_blank" , a game that uses the concept of meta-cosm, super-free p...
  • 【CoinCentral 合作內容】加密貨幣 Decred 正式推出 2018 發展路段線圖

    【CoinCentral 合作內容】加密貨幣 Decred 正式推出 2018 發展路段線圖
    早些時候,加密貨幣Decred發表了一篇博客文章,概述了他們2018年的正式發展路線圖。Earlier, encrypt currency Decred published a blog article outlining their official road map for development in 2018.在這個路線圖中,團隊在為他們制定營銷宣傳之前,明確地表明他們於建立和發布可交付物品的成果,同時將他們的營銷集中在項目的核心組成部分。Decred團隊正在研究一些...
  • 跨接在两个网络间的语音记录仪设计

    跨接在两个网络间的语音记录仪设计
      摘  要: 设计了语音记录仪。该语音记录仪桥接在通信设备之间,同时提供3种桥接接口:以太网接口,支持在IP通信方式下的各通话组的直通及录音功能;二线接口,支持模拟二线方式下的直通及录音功能;音频接口,支持模拟音频方式下的直通及录音功能。同时话音记录仪提供FTP服务器,可以通过局域网对语音记录仪保存的语音文件进行下载和管理。此外,该设备支持语音回放功能。 extracts & nbsp; to : The voice record...
  • 元宇宙概念股有哪些 元宇宙概念股一览表

    元宇宙概念股有哪些 元宇宙概念股一览表
    元宇宙概念股排行精选 元宇宙概念股一览表(2022/11/08),下文就随小蔡来简单的了解一下吧。The contours of the meta-cosmology unit are in the list of the meta-cosmological concept units (2022/11/08), so let's get to the bottom of this with Little Choi. 元宇宙概念股龙头有:The contou...
标签列表