繁体   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