如何可靠地从Excel文件读取数据?

我正在寻找一种方式来阅读(写入也会很好 – 虽然不是关键)一个Excel文件。 我的意思是97-2003格式,因为MS为2007格式提供了OO XML工具包,我听说这个工具包没有问题。

到目前为止,我所做的只是使用了OleDB(Microsoft Jet),它有许多问题和缺点,甚至很难相信:)

我知道有很多免费的图书馆(即在Codeplex上),但他们使用OldeDb(所以他们遭受同样的问题)。
唯一一个我发现,但还没有尝试过,是http://exceldatareader.codeplex.com/这显然是二进制阅读的Excel文件。

我很乐意听取您对使用或阅读过的图书馆的build议和见证。

编辑:对不起,如果不是很明显,但我的意思是一个.NET库。

我不确定你的约束是什么,但如果我是你(这是经验谈话,相信我),我会避免阅读除Excel以外的Excel文件。 我的build议是,保持简单,坚持CSV。 大多数库(包括xlrd )仅支持Excel的基本function(对不起,没有图表或数据透视表),CSV也是如此。

你有特定的语言偏好吗?
如果您对Python感到满意,我会衷心推荐xlrd 。

它不比下面的代码示例容易得多;
它将search特定模式的工作簿表单:

 import re, xlrd def re_search(fname, query): ''' iterate through sheets of workbook searching for `query` ''' book = xlrd.open_workbook(fname) for sheet in book.sheets(): for rowx in xrange(sheet.nrows): for colx in xrange(sheet.ncols): cell = sheet.cell(rowx, colx) if cell.ctype == xlrd.XL_CELL_TEXT and query.search(cell.value): yield cell.value if __name__ == '__main__': my_pattern = re.compile('[AZ]{3} (.*)') for matched_re in xlresearch('my_xl_file.xls', my_pattern): print matched_re 

使用SSIS? 如何使用集成服务将Excel文件导入到SQL Server 2005中http://www.techrepublic.com/blog/datacenter/how-to-import-an-excel-file-into-sql-server-2005-using-integration -Services / 205
开源? EPPPlus在服务器http://epplus.codeplex.com/上创build高级Excel 2007/2010电子表格
C#? 如何使用C# 将数据从一列Excel导入到列表框如何使用C# 将数据从一列Excel导入列表框
链接服务器:如何使用Excel与SQL Server链接服务器和分布式查询http://support.microsoft.com/kb/306397
批量插入数据使用C#DataTable和SQL Server OpenXML函数http://www.codeproject.com/Articles/32581/Import-Data-from-Excel-to-SQL-Server
还有很多!!!

我不知道你的情况,但是如果你在机器上安装了一个excel,你可以通过OLE接口来使用它。