使用github处理excel文件

pgvzfuti  于 2023-08-08  发布在  Git
关注(0)|答案(3)|浏览(339)

作为this question的一种后续,我想问一下关于二进制文件(如我们的excel文件)和版本控制的问题。
假设我想使用github来存储一个编程项目。没有问题,因为大多数文件都是文本(无论语言如何)。
但我也有文件。如果我把它放在github项目的文件夹中会怎么样?(我看到过这样做的项目)
我读到git对此没有好处,那么我如何为excel文件进行版本控制呢?

izj3ouym

izj3ouym1#

您可以将Excel保存为.fods,这是保存为平面XML的常规.ods文件。MS Office可能不支持这种格式,因此您可能需要为此安装Libre Office(它是免费的)。
由于.fods是常规的XML,因此可以将其版本控制为具有差异的常规文本文件,甚至支持分支之间的合并(运气好的话)。
您还可以将其他Open Document格式保存为平面XML:

  • .fodt用于文字处理(文本)文档
  • .fods用于电子表格
  • .fodp用于演示
  • .fodg用于图形

因此,如果迁移到Libre Office不是问题,这可能是最好的解决方案。
如果这不是一个选项,您可以考虑使用Git LFS来存储二进制文件。但是如果文件很小,并且您不经常更改它们,那么您可以忽略整个问题-很少有小的二进制文件不会损害您的存储库。你应该只是估计-如果你将开始版本化1 MB的二进制文件,并保存100个版本,这将增加你的存储库的大小约100 MB(如果文件可以压缩,它可能会更小)。你需要一个非常大的代码库来达到100 MB的存储库,只有文本源文件,所以在这种情况下,你的存储库将主要由二进制文件填充。
顺便说一句:GitHub发布了一个测量git仓库大小的工具:git-sizer。它可能会给予你一些关于仓库潜在问题的提示。

sirbozc5

sirbozc52#

//FIRST RUN THIS COMMAND
//npm install xlsx jsonfile

//CHANGE INPUT FILE NAME TO sample.xlsx and OUTPUT file is data.json

var XLSX = require('xlsx'),
request = require('request');
var fs = require('fs');
var jsonfile = require('jsonfile')

var file = 'data.json'

var buf = fs.readFileSync("sample.xlsx");
var wb = XLSX.read(buf, {type:'buffer'});

console.log(wb.Sheets);

jsonfile.writeFile(file, wb.Sheets, function (err) {
  console.error(err)
})

字符串
有趣的问题。简单的回答是,“写一些代码将你的excel文件(.xls或.xlsx)转换为json文件,并将内容上传到git。
这个想法只适用于一个简单的Excel工作表,而不适用于涉及大量数学和图表的复杂工作表。

bttbmeg0

bttbmeg03#

您可以使用Microsoft Office支持的CSV格式,并且不难解析。下面是一个例子:

A1,B1
C1,D1

字符串

相关问题