我正在做的项目使用Bitkeeper进行版本控制。 我正在开发一项新功能,其中涉及将 Excel 电子表格中的定义(由架构师编辑)转换为可执行代码(到目前为止一直由程序员手动完成)。 此 Excel 文件必须是代码存储库的一部分,因为不同的分支可能有不同的定义,最终必须合并。
Bitkeeper 在合并文本文件方面做得很好。 然而,Excel 电子表格是二进制文件,Bitkeeper 不知道如何处理。 Bitkeeper 确实使我能够使用外部工具(即 Bitkeeper 外部的工具)合并更改。 我正在寻找一个在 Linux 中工作的 diff 工具,可以比较和合并 Excel 电子表格。
有什么工具可以做到这一点吗?
.xlsx 只不过是 XML 文件的压缩集合,您可以解压缩它们,然后比较文件。 例如
unzip test.xlsx -d unzipped
你必须做出我所知道的选择。您可以将文件转换为 .csv 文本文件并使用 awk/sed 等解析文件,也可以使用您选择的编程语言打开和修改电子表格。 例如,Python 有 Excel 模块 - http://www.python-excel.org/。
你可以使用“xls_diff -diff xls1 xls2”
如何使用
meld为 Excel 文件
a.xlsx
和 b.xslx
创建差异:
# Extract the contents of the excel files:
unzip a.xlsx -d a-contents
unzip b.xlsx -d b-contents
# Compare the two folders:
meld a-contents/ b-contents/
就我而言,它看起来像这样:
您可以看到
app.xml
和core.xml
有差异并进行比较。
xlsx格式最重要的部分:
app.xml
:有关创建应用程序的元数据;大多不有趣core.xml
:有关文档的元数据,例如作者、创建程序、创建时间xl/
:所有数据,包括图表,尤其是工作表