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

时间:2010-10-08 17:30:32

标签: excel import-from-excel

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

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

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

我很想听听您对已使用或阅读过的图书馆的建议和推荐。

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

4 个答案:

答案 0 :(得分:2)

我不确定你的约束是什么,但如果我是你(这是经验谈话,相信我),我会避免使用Excel以外的任何东西阅读Excel文件。我的建议是,保持简单并坚持使用CSV。大多数库(包括xlrd)仅支持Excel的基本功能(抱歉,没有图表或数据透视表),CSV也是如此。

答案 1 :(得分:1)

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

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

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('[A-Z]{3} (.*)')

    for matched_re in xlresearch('my_xl_file.xls', my_pattern):
        print matched_re

答案 2 :(得分:1)

使用SSIS?如何使用Integration Services http://www.techrepublic.com/blog/datacenter/how-to-import-an-excel-file-into-sql-server-2005-using-integration-services/205将Excel文件导入SQL Server 2005中 开源? EPPPlus在服务器http://epplus.codeplex.com/上创建高级Excel 2007/2010电子表格 C#?如何使用C#How to import data from one column of Excel to listbox using 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
还有更多!!!

答案 3 :(得分:0)

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