我怎样才能读取我的C#代码使用DLL的Excel 2010文件?

UPDATE1:

我正在使用Excel 2010,我已经search了网页,发现成千上万的方式来通过赢取窗体,控制台等,但我找不到通过DLL来做到这一点。 没有一个在线样本是完整的。

更新结束

我已经看了,看了一眼,但没有得到具体的东西,我正在寻找,如下所示的Excel样本表。

我正在寻找一种方法来读取和存储每个单元格数据在一个variables

我已经开始了这样的事情:

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工作表是基于1的,而不是基于0(并使用工作表而不是IWorksheet):

 Worksheet worksheet = workbook.Worksheets[1]; 

为了得到一个范围,最简单的方法是在工作表对象上调用get_Range() (并使用Range而不是IRange):

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

随着这两行代码的改变,你的例子将正常工作。

UPDATE

这是一个“完整”的例子:

  1. 在解决scheme资源pipe理器中右键单击您的项目,然后单击“添加引用”。
  2. 点击COM选项卡,按组件名称对列表进行sorting。 在列表中find“Microsoft Excel 14.0对象库”并select它。 点击OK。
  3. 在要运行的代码文件中,添加一个using Microsoft.Office.Interop.Excel;
  4. 使用这个代码,我已经尽可能less地修改了你的例子:

 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); 
 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; 

如果你不想和com组件一起交战并注册dll,

读取excel的最佳方法是用于.NET的Excel Reader

我一直在使用它很长一段时间,我可以说这是正常的。

excelReader.IsFirstRowAsColumnNames属性使一切都变得简单。 你可以在数据集中播放你的数据。