我需要某種方式從Excel文件中讀取工作表,然後選擇它的重要性,並將所有數據放入數據庫中。從Excel工作表中讀取數據在c#中?
這只是一次工作。這是一個帶有信息的舊Excel文件,必須傳遞給數據庫,並且可以與我開發的應用程序一起工作。
我看到了很多例子,但我不太清楚它是如何工作的,以及哪種方式最適合做這類工作。
我的想法是在這個過程中開發一些應用程序在c#中。
我需要某種方式從Excel文件中讀取工作表,然後選擇它的重要性,並將所有數據放入數據庫中。從Excel工作表中讀取數據在c#中?
這只是一次工作。這是一個帶有信息的舊Excel文件,必須傳遞給數據庫,並且可以與我開發的應用程序一起工作。
我看到了很多例子,但我不太清楚它是如何工作的,以及哪種方式最適合做這類工作。
我的想法是在這個過程中開發一些應用程序在c#中。
LINQ可能工作,並會在相對簡單的表是優選的。 傳統的方法是使用COM Interop。下面是關於使用Excel的COM互操作工作的一個微軟頁面(它是電子表格的創建,但原理都是一樣的 - 只是用不同的API方法來打開和讀取數據):
http://msdn.microsoft.com/en-us/library/ms173186(v=vs.80).aspx
我強烈建議使用linq提供程序連接到excel。這應該使查詢您正在查找的信息變得非常容易。一旦擁有它,插入數據庫應該很容易。
我已經之前使用過它,它運作良好。 http://exceldatareader.codeplex.com/
了從Excel工作表在C#中得心應手的例子...
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);
}
讀取數據?我在這裏得到了精確的解決方案訪問 http://microsoftdotnetsolutions.blogspot.in/2012/12/get-excel-sheet-data.html
確切的dupe http://stackoverflow.com/questions/4235887/c-read-excel-worksheet – 2011-03-15 21:52:47