6 个稳定版本
1.2.1 | 2023年6月5日 |
---|---|
1.2.0 | 2023年3月20日 |
1.1.0 | 2022年10月29日 |
1.0.1 | 2019年12月12日 |
1.0.0 | 2019年11月11日 |
#688 在 编码
每月43 次下载
18KB
169 行
包含 (压缩文件,7KB) tests/input.xlsx
xls2txt: 将电子表格转换为文本
目的
xls2txt
和 xsl2csv
允许将电子表格文件转换为文本,以便与终端和命令行工具兼容(例如 diff 或 less)。尽管名称如此,它们应该可以与 excel(xls、xlsx 或 xlsb)和 OpenDocument(ods)文件一起工作。
此包提供的两个可执行文件大致以相同的方式工作,每行返回一行,用 Unix 新行符(\n
)分隔,并在必要时引用字段值,它们的不同之处仅在于其 默认 字段(单元格)分隔符
xls2txt
使用制表符分隔单元格xls2csv
使用逗号(,
)
制表符分隔符似乎是一个更好的默认选项,因为它更易于阅读且与各种 Unix 工具兼容。
界面
这两个工具具有相同的参数和选项,只是在默认值上有所不同
-
PATH
是要转换的电子表格文件的必填路径。 -
--sheet
(-s
)是要转换的表。默认情况下,转换第一个表。sheet
可以是表的 名称,或它在工作簿中的位置(从 1 开始,尽管 0 被视为 1)。 -
--record-separator
(-r
)是在表行之间使用的分隔符,对于两个工具默认都是 Unix 新行符。 -
--field-separator
(f
)是在表单元格之间使用的分隔符,对于xsl2txt
默认是制表符,对于xls2csv
默认是逗号。 -
--formula
指定 公式显示模式- 默认情况下(
cached-value
),公式不会显示,如果公式单元格有一个缓存的值则显示该值,否则单元格为空 if-empty
如果有缓存值则显示缓存值,如果没有则显示公式always
总是显示公式单元格的公式,从不显示缓存的值
- 默认情况下(
-
转换后的数据写入 stdout
-
错误信息可以写入stdout,包括在成功的情况下,例如在解析公式时发生错误且公式模式不是默认模式时,将发出错误信号,然后公式模式将被重置为默认模式
-
如果整个转换成功,则返回
0
,否则返回1
- 没有提供输入文件
- 找不到输入文件或无法识别为有效的电子表格文件
- 提供的记录或字段分隔符无效(它必须是一个ASCII字符)
- 找不到指定的工作表
- 工作表中的一个单元格出现了错误
- 在将数据写入stdout时出现了问题
食谱
git文本转换
这允许使用git log
或git diff
查看电子表格文件的文本差异,而不是得到一个无用的“二进制文件不同”的消息
-
创建一个
$HOME/.gitattributes
文件,或者设置任意文件作为属性文件(git config --global core.attributesFile <filename>
) -
在该文件中,将相关的电子表格扩展名与适当的类别(块标题)相关联
*.ods diff=spreadsheet *.xls diff=spreadsheet *.xlsx diff=spreadsheet *.xlsb diff=spreadsheet
-
将
xls2txt
(或xls2csv
),可能按照您的需求配置,作为差异文本转换器git config --global diff.spreadsheet.textconv xls2txt
变更日志
1.1.0
-
添加显示公式的支持
- 如果公式单元格没有缓存的值
- 或者代替缓存的值
1.0.2
- 更新依赖到最新版本,增加版本号
1.0.1
- 切换回calamine作为0.16.1保证工作表是有序的
谢谢
依赖项
~9MB
~215K SLoC