从Excel读取(范围到多维数组)C#

Hou*_*man 13 c# excel multidimensional-array

如何从Excel工作表中读取并将标记的选择(区域)加载到多维数组中?Excel中的列本身可以是多维数组,因为它不仅包含一个值.

现在的想法(不确定这是好还是坏)是在所有Excel.Area(选定字段)中进行for循环,并将该字段的内容添加到多维数组中.由于多维数组的类型为object [,],因此非泛型,因此没有方便的add()方法.所有这些都需要手动完成.

不知道这种方法是否合适,或者是否可以更有效地完成?

TcK*_*cKs 19

您可以将Range的值读取为数组:

using (MSExcel.Application app = MSExcel.Application.CreateApplication()) 
{
    MSExcel.Workbook book1 = app.Workbooks.Open( this.txtOpen_FilePath.Text);
    MSExcel.Worksheet sheet = (MSExcel.Worksheet)book1.Worksheets[1];
    MSExcel.Range range = sheet.GetRange("A1", "F13");

    object value = range.Value; //the value is boxed two-dimensional array
}
Run Code Online (Sandbox Code Playgroud)

此代码段来自MS Office的.NET包装器.但同样的原则是在MS Excel中的VSTO或VBA中.