从c#中的Excel工作表中读取数据?

时间:2011-03-15 21:49:25

标签: c# excel

我需要一些方法从Excel文件中读取工作表,然后选择它的重要性,并将所有数据放在数据库中。

这只是一次工作。这是一个包含信息的旧excel文件,必须传递给数据库,并且可以与我开发的应用程序一起使用。

我看到很多例子,但我不太了解它的工作原理,以及哪种方式最适合做这类工作。

我的想法是在c#中为这个过程开发一些应用程序。

4 个答案:

答案 0 :(得分:2)

我之前使用过它,效果很好。 http://exceldatareader.codeplex.com/

有一个方便的例子......

using (FileStream fileStream = File.Open(inputFilenames[0], FileMode.Open, FileAccess.Read))
{
    IExcelDataReader excelReader;
    if (Path.GetExtension(inputFilenames[0]) == ".xls")
        excelReader = Factory.CreateReader(fileStream, ExcelFileType.Binary);
    else
        excelReader = Factory.CreateReader(fileStream, ExcelFileType.OpenXml);

    excelReader.NextResult();
    while (excelReader.Name != this.Worksheet)
        excelReader.NextResult();                

    while (excelReader.Read())
    {
        if (FirstRowHasColumnNames)
        {
            FirstRowHasColumnNames = false;
        }
        else
        {
            //do stuff
            var test = GetColumnData(excelReader, 1);
        }
    }

    this.Save(outputFilename);
}

答案 1 :(得分:1)

我强烈建议使用linq提供程序连接到excel。这样可以很容易地查询您要查找的信息。一旦拥有它,插入数据库应该很容易。

http://code.google.com/p/linqtoexcel/

答案 2 :(得分:1)

LINQ可能会起作用,并且对于相对简单的表格而言更为可取。 传统的方法是使用COM Interop。这是一个Microsoft页面,使用COM互操作来处理Excel(它用于创建电子表格,但原理是相同的 - 只需使用不同的API方法来打开和读取数据):

http://msdn.microsoft.com/en-us/library/ms173186(v=vs.80).aspx

答案 3 :(得分:0)

从c#中的Excel工作表中读取数据?我在这里访问了Exact解决方案 http://microsoftdotnetsolutions.blogspot.in/2012/12/get-excel-sheet-data.html