SheetJS SSF

ssf(SpreadSheet Format)是一个纯JS库,使用ECMA-376电子表格格式代码(用于流行的电子表格软件包)来格式化数据。

这是社区版本。我们还提供一个专业版本,具有额外的功能,如国际支持以及专门支持。

Installation

With npm:

$ npm install ssf

在浏览器中。

<script src="ssf.js"></script>

浏览器公开一个变量 SSF

当全局安装时,npm 会安装一个脚本 ssf ,它使用给定的参数呈现格式字符串。 -h 运行脚本会显示帮助。

如果可用,该脚本将操作 module.exports 。这并不总是可取的。为了防止这种行为,定义 DO_NOT_EXPORT_SSF

Usage

SSF.format(fmt, val, opts) 使用格式 fmt 格式化 val

如果 fmt 是一个字符串,它将被解析和评估。如果 fmt 是一个 number ,则实际格式将是内部格式表中的相应条目。对于像 000 这样的原始数字格式,该值应作为字符串传递。

日期参数是以JS客户端的本地时间来解释的。

选项参数可以包含以下键。

Option Name Default Description
date1904 false 如果为真则使用1904年的日期系统,如果为假则使用1900年的系统

操纵内部格式表

二进制电子表格格式将单元格格式存储在一个表中,并通过索引进行引用。这个库使用一个全局表。

SSF._table 是底层对象,将数字键映射到格式字符串。

SSF.load(fmt:string, idx:?number):number 将格式分配给指定索引并返回索引。如果未指定索引,SSF 将搜索可用格式槽的空间,然后选择一个未使用的槽。为了与 XLS 和 XLSB 文件格式兼容,自定义索引应在有效范围 5-823-2641-4463-66164-382 内(参见 [MS-XLSB] 2.4.655 BrtFmt

SSF.get_table() 获取内部格式表(数字到格式的映射)。

SSF.load_table(table) 设置内部格式表。

Other Utilities

SSF.parse_date_code(val:number, opts:?any) 解析 val ,返回一个对象:

type SSFDate = {
  D:number; /* 自相关纪元以来的天数,0 <= D */
  y:number; /* 整数年部分,epoch_year <= y */
  m:number; /* 整月部分,1 <= m <= 12 */
  d:number; /* 整数日部分,受公历 YMD 约束 */
  q:number; /* 整周(0=星期日.. 6=星期六)0 <= q <= 6 */

  T:number; /* 自午夜以来的秒数,0 <= T < 86400 */
  H:number; /* 自午夜以来的整数小时数,0 <= H < 24 */
  M:number; /* 自上一小时以来的整数分钟数,0 <= M < 60 */
  S:number; /* 自上一分钟以来的整数秒数,0 <= S < 60 */
  u:number; /* 亚秒部分时间,0 <= u < 1 */
}

SSF.is_date(fmt:string):boolean 如果 fmt 编码日期格式,则返回 true

Examples

Related Packages

ssf-cli 是一个用于格式化数字的简单 NodeJS 命令行工具。

License

详情请查阅附件中的LICENSE文件。所有未被Apache 2.0许可证明确授予的权利均由原作者保留。

References

  • ECMA-376 :Office Open XML 文件格式
  • MS-XLS :Excel 二进制文件格式 (.xls) 结构规范
  • MS-XLSB :Excel (.xlsb) 二进制文件格式

Badges

Sauce Test Status

Build Status

Coverage Status

NPM Downloads

Dependencies Status

Analytics