簡體   English   中英

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

[英]How can I read an Excel 2010 file in my C# code using a DLL?

UPDATE1:

我正在使用Excel 2010,我搜索了網絡,並通過win form,console等找到了成千上萬的方法。但我找不到通過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表格

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;

您的代碼可以使用一些更改。

要記住的一件事是Excel工作表是基於1的,而不是基於0(並使用Worksheet而不是IWorksheet):

Worksheet worksheet = workbook.Worksheets[1];

要獲得范圍,最簡單的方法是在工作表對象上調用get_Range() (並使用Range而不是IRange):

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

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

UPDATE

這是一個“完整”的例子:

  1. 在解決方案資源管理器中右鍵單擊您的項目,然后單擊“添加引用”。
  2. 單擊COM選項卡,然后按組件名稱對列表進行排序。 在列表中找到“Microsoft Excel 14.0 Object Library”並選擇它。 單擊確定。
  3. 在要運行它的代碼文件中, using Microsoft.Office.Interop.Excel;添加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);

如果你不想與com組件發生戰爭並注冊dll,

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

我已經使用了很長時間了,我可以說它只是有效。

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

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM