是否有免费或开源的库可以直接从c#程序中读取Excel文件(.xls) ?

它不需要太花哨,只需选择一个工作表并将数据作为字符串读取即可。到目前为止,我一直在使用Excel的Export to Unicode文本功能,并解析生成的(以制表符分隔的)文件,但我想消除手动步骤。


当前回答

最近,部分是为了更好地使用LINQ....我一直在使用Excel的自动化API将文件保存为XML电子表格,然后使用LINQ将该文件处理为XML。

其他回答

Excel软件包是一个开源的(GPL)组件,用于读取/写入Excel 2007文件。我在一个小项目中使用了它,它的API很简单。只能使用XLSX (Excel 200&),不能使用XLS。

源代码似乎组织良好,易于处理(如果您像我一样需要扩展功能或修复小问题)。

起初,我尝试了ADO。Net (Excel连接字符串)方法,但它充满了讨厌的黑客——例如,如果第二行包含一个数字,它将为下面的列中的所有字段返回整数,并悄悄删除任何不匹配的数据。

Excel数据阅读器是去的方式!

它是开源的,在http://exceldatareader.codeplex.com/上,正在积极开发。

我们使用它来阅读表格(有时不是那么表格)工作表已经有几年了(在一个金融应用程序中)。

可以从人类可读的表中读取单元测试数据。

只需避免尝试返回DateTime的功能,因为对于Excel, DateTime只是双位数。

不是免费的,但是在最新的Office中有一个非常好的自动化。net API。(有一个API已经有很长一段时间了,但是讨厌的COM)你可以在代码中做任何你想要/需要的事情,而Office应用程序仍然是隐藏的后台进程。

您可以尝试使用这个开源解决方案,使处理Excel更加简洁。

http://excelwrapperdotnet.codeplex.com/

接受。io电子表格将为您做这个工作,并且不收费。看看这个。