是否有免费或开源的库可以直接从c#程序中读取Excel文件(.xls) ?
它不需要太花哨,只需选择一个工作表并将数据作为字符串读取即可。到目前为止,我一直在使用Excel的Export to Unicode文本功能,并解析生成的(以制表符分隔的)文件,但我想消除手动步骤。
是否有免费或开源的库可以直接从c#程序中读取Excel文件(.xls) ?
它不需要太花哨,只需选择一个工作表并将数据作为字符串读取即可。到目前为止,我一直在使用Excel的Export to Unicode文本功能,并解析生成的(以制表符分隔的)文件,但我想消除手动步骤。
当前回答
Excel软件包是一个开源的(GPL)组件,用于读取/写入Excel 2007文件。我在一个小项目中使用了它,它的API很简单。只能使用XLSX (Excel 200&),不能使用XLS。
源代码似乎组织良好,易于处理(如果您像我一样需要扩展功能或修复小问题)。
起初,我尝试了ADO。Net (Excel连接字符串)方法,但它充满了讨厌的黑客——例如,如果第二行包含一个数字,它将为下面的列中的所有字段返回整数,并悄悄删除任何不匹配的数据。
其他回答
我推荐FileHelpers库,这是一个免费的,易于使用的。net库,用于从EXCEL中导入/导出数据,文件,字符串或流中的固定长度或分隔记录+更多。
Excel数据链接文档部分 http://filehelpers.sourceforge.net/example_exceldatalink.html
我们在相当大的系统中使用ClosedXML。
免费的 安装方便 直接编码 非常灵敏的支持 开发团队对新的建议非常开放。通常情况下,新特性和bug修复会在同一周内实现
不久前,我在c#中从Excel文件中读取了大量数据,我们使用了两种方法:
COM API,在这里您可以直接访问Excel的对象并通过方法和属性操作它们 允许像使用数据库一样使用Excel的ODBC驱动程序。
后一种方法要快得多:通过COM读取一个有20列和200行的大表需要30秒,通过ODBC只需半秒。所以,如果你需要的只是数据,我建议使用数据库方法。
欢呼,
Carl
Excel数据阅读器怎么样?
http://exceldatareader.codeplex.com/
我在生产环境中使用了anger,将大量数据从各种Excel文件中提取到SQL Server Compact中。它工作得非常好,而且相当健壮。
ExcelMapper是一个开源工具(http://code.google.com/p/excelmapper/),可用于将Excel工作表作为强类型对象读取。它同时支持xls和xlsx格式。