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

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


当前回答

我推荐FileHelpers库,这是一个免费的,易于使用的。net库,用于从EXCEL中导入/导出数据,文件,字符串或流中的固定长度或分隔记录+更多。

Excel数据链接文档部分 http://filehelpers.sourceforge.net/example_exceldatalink.html

其他回答

不久前,我在c#中从Excel文件中读取了大量数据,我们使用了两种方法:

COM API,在这里您可以直接访问Excel的对象并通过方法和属性操作它们 允许像使用数据库一样使用Excel的ODBC驱动程序。

后一种方法要快得多:通过COM读取一个有20列和200行的大表需要30秒,通过ODBC只需半秒。所以,如果你需要的只是数据,我建议使用数据库方法。

欢呼,

Carl

如果只是包含在Excel文件中的简单数据,则可以通过ADO.NET读取数据。请看下面列出的连接字符串:

http://www.connectionstrings.com/?carrier=excel2007 或 http://www.connectionstrings.com/?carrier=excel

更新:然后你可以读取工作表通过选择*从[Sheet1$]

虽然您特别要求使用.xls,这意味着使用较旧的文件格式,但对于OpenXML格式(例如xlsx),我强烈推荐使用OpenXML SDK (http://msdn.microsoft.com/en-us/library/bb448854.aspx)。

我推荐FileHelpers库,这是一个免费的,易于使用的。net库,用于从EXCEL中导入/导出数据,文件,字符串或流中的固定长度或分隔记录+更多。

Excel数据链接文档部分 http://filehelpers.sourceforge.net/example_exceldatalink.html

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