使用 github 处理 excel 文件

Kan*_*bot 5 excel github

作为对这个问题的一种跟进,我想问一下二进制文件(例如我们的 excel 文件)和版本控制。

假设我想使用 github 来存储一个编程项目。没问题,因为大多数文件都是文本(无论语言如何)。

但我也有文档。如果我把它放在github项目的文件夹中呢?(我见过这样做的项目)

我读过 git 对此没有好处,那么我如何为 excel 文件进行版本控制?

rob*_*006 7

您可以将 Excel 保存为.fods,这是.ods另存为平面 XML 的常规文件。MS Office 可能不支持此格式,因此您可能需要为此安装Libre Office (它是免费的)。

由于.fods是常规 XML,因此可以将其版本控制为具有差异的常规文本文件,并且(运气好的话)甚至支持分支之间的合并。

您还可以将其他开放文档格式另存为平面 XML:

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

因此,如果迁移到 Libre Office 不是问题,这可能是最好的解决方案。


如果这不是一个选项,您可以考虑使用Git LFS来存储二进制文件。但是,如果文件很小并且您不经常更改它们,那么您可以忽略整个问题 - 一些小的二进制文件不会损害您的存储库。您应该估计 - 如果您开始对 1 MB 二进制文件进行版本控制并保存它的 100 个版本,这将使您的存储库的大小增加约 100 MB(如果文件可以压缩,它可能会更小)。您需要一个非常大的代码库才能在仅包含文本源文件的存储库中达到 100 MB,因此在这种情况下,您的存储库将主要由二进制文件填充。

BTW:GitHub 发布了一个用于测量 git 存储库大小的工具:git-sizer。它可能会给您一些有关存储库潜在问题的提示。


Pra*_*A X 1

//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)
})
Run Code Online (Sandbox Code Playgroud)

有趣的问题。简单的答案是,“编写一些代码将 excel 文件(.xls 或 .xlsx)转换为 json 文件并将内容上传到 git”。

这个想法仅适用于简单的 Excel 工作表,不适用于涉及大量数学和图表的复杂工作表。