2012-08-15 51 views
1

UPDATE1:如何使用DLL在我的C#代碼中讀取Excel 2010文件?

我使用Excel 2010和我在網上搜索,發現成千上萬的方式通過雙贏的形式,控制檯等要做到這一點,但我無法找到一個方法來做到這通過DLL。並沒有一個在線樣本完整無缺。

更新的最終

我已經看過,並瞪大眼睛,但沒有得到具體是什麼我期待的,因爲Excel的樣張如下所示。

我正在尋找一個方式在一個變量

我已經開始這樣的讀取和存儲的每個單元格數據:

Workbook workbook = open(@"C:\tmp\MyWorkbook.xls"); 
IWorksheet worksheet = workbook.Worksheets[0]; 
IRange a1 = worksheet.Cells["A1"]; 
object rawValue = a1.Value; 
string formattedText = a1.Text; 
Console.WriteLine("rawValue={0} formattedText={1}", rawValue, formattedText); 

Excel sheet

+0

可能的複製http://stackoverflow.com/questions/15828/reading-excel-files-from-c-sharp – user1071979 2012-08-15 22:55:56

+0

高興地幫助你,感謝標記,如果你認爲我的回答正確 – 2012-08-15 23:05:05

+0

沒有解決方案的作品,我用的是Excel 2010,我錯過了一個程序集引用,我會更新我的問題在 – 2012-08-16 14:27:40

回答

2

您的代碼可以使用幾項更改。

有一點要記住的是,Excel工作表是從1開始的,而不是從0(和使用工作表,而不是IWorksheet):

Worksheet worksheet = workbook.Worksheets[1]; 

而得到的範圍,這是最簡單的調用get_Range()上工作表對象(並使用範圍,而不是IRange):

Range a1 = worksheet.get_Range("A1"); 

這兩行代碼更改,您的示例將正常工作。

UPDATE

這裏是一個 「完整」 的例子:

  1. 右鍵單擊在Solution Explorer中的項目,然後點擊 「添加 參考」。
  2. 單擊COM選項卡並按組件名稱對列表進行排序。在列表中找到「Microsoft Excel 14.0 Object Library」並選擇它。點擊確定。
  3. 在您希望此運行的代碼文件,添加一個using Microsoft.Office.Interop.Excel;
  4. 使用此代碼,我修改儘量少從你的例子:

var excel = new Microsoft.Office.Interop.Excel.Application(); 
Workbook workbook = excel.Workbooks.Open(@"C:\tmp\MyWorkbook.xls"); 
Worksheet worksheet = workbook.Worksheets[1]; 
Range a1 = worksheet.get_Range("A1"); 
object rawValue = a1.Value; 
string formattedText = a1.Text; 
Console.WriteLine("rawValue={0} formattedText={1}", rawValue, formattedText); 
+0

更新了我的問題 – 2012-08-16 14:44:04

+0

更新了我的回答:) – hmqcnoesy 2012-08-16 15:23:43

2
Excel.Sheets sheets = workbook.Worksheets; 

Excel.Worksheet worksheet = (Excel.Worksheet)sheets.get_Item(1); 


System.Array myvalues; 


Excel.Range range = worksheet.get_Range("A1", "E1".ToString()); 

myvalues = (System.Array)range.Cells.Value; 
+0

什麼是m_Excel?你有在你的第一行 – 2012-08-16 15:16:54

+0

它是你的工作簿 – 2012-08-16 15:35:42

+0

是它的工作簿 – 2012-08-16 15:50:54

0

如果你不不希望與com組件發生戰爭並註冊dll,

讀取excel的最佳方法是Excel Reader for .NET

我一直在使用它很長一段時間,我可以說它只是起作用。

excelReader.IsFirstRowAsColumnNames屬性使一切都變得簡單。 您可以在數據集內播放數據。

+0

更新了我的問題 – 2012-08-16 14:31:16

+0

我明白了,但你仍然可以使用相同的開源compopnent。它本身實現OpenXml格式。 – 2012-08-16 15:17:32