在没有库的情况下读取 Excel 文件

Posted

技术标签:

【中文标题】在没有库的情况下读取 Excel 文件【英文标题】:Reading Excel files without a library 【发布时间】:2013-10-11 14:12:26 【问题描述】:

我试图弄清楚 excel 文件是如何编写的,所以我可以在没有库的情况下用 C# 读取和编辑它们(因为我喜欢这样为自己工作)。在记事本中打开它们时,你所看到的都是奇怪的带翼字符,所以我立刻想到,在读取字节数组时可能会得到一些结果。不走运,我确实得到了一个大小合适的字节数组,但将其转换为字符串最终会产生无用的结果!

所以我想我的问题是,excel 文件是如何编写的,没有库我如何阅读它们?

【问题讨论】:

“因为我喜欢这样为自己工作”——我以前没听说过。 MS 提供了一个文件格式规范(免费下载)——如果我是你的话,我会从这个开始……做我自己我肯定会去图书馆(有很多免费和商业的在那里,大多数都经过良好测试等)。 我有很多我喜欢实施的爱好项目,以防您喜欢(无偿)工作。但说真的,这样尝试不是一个好主意,因为格式可以随时更改,无需另行通知......实际上它可能是一种专有格式,你甚至不允许“逆向工程”它......作为替代方案,您为什么不将 Excel 文件输出为文本并在您自己的应用程序中读取? MS 甚至为较新的 Excel 版本 (XLSX) 提供了免费库... 我明白你想要什么...你应该仔细阅读这份文件 - download.microsoft.com/download/2/4/8/… 【参考方案1】:

这个项目是一个很好的起点:Excel Data Reader CodePlex

它有工作代码,您将能够学习旧格式“xls”。 “XLSX”实际上更像是新的 OpenXML 文档标准。 Microsoft 提供的 SDK 链接:

Open XML for Office Developers (Microsoft)

我想自己学习一些我一直在做的单声道工作的格式。旧的文件格式“XLS”并不是你“学习”的东西。如果你问我,这很复杂。最终只是等待单声道产品出现,而不是从许多供应商那里购买资源......然后移植到单声道。

【讨论】:

以上是关于在没有库的情况下读取 Excel 文件的主要内容,如果未能解决你的问题,请参考以下文章

java无依赖读取Excel文件

在没有库的情况下在 Java 中读取 PKCS#1 或 SPKI 公钥

qt 或 C++ 可以在没有安装 office excel 或其他必备框架的情况下读取 excel

对xlslib库与libxls库的简易封装

Pandas 可以在不修改文件其余部分的情况下读取和修改单个 Excel 文件工作表(选项卡)吗?

如何在 C# 中读取 excel 文件而不使用 Microsoft.Office.Interop.Excel 库