从Excel读取(范围到multidimensional array)C#

我将如何从Excel工作表读取并将标记的select(区域)加载到multidimensional array中? Excel中的列本身可以是一个multidimensional array,因为它包含的不仅仅是一个值。

这个想法(不知道这有多好)是在所有的Excel.Area(选定的领域)做一个for循环,并将该领域的内容添加到multidimensional array。 由于multidimensional array的types为object [,],因此非generics,因此没有方便的add()方法。 所有这些都需要手动完成。

任何想法,如果这种方法是好的,如果它可以做得更有效率?

你可以读取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 } 

这个代码片段来自MS Office的.NET包装器 。 但是同样的原理是在MS Excel中的VSTO或VBA中。

这里是用SpreadsheetGear做这个的C#代码:

  // Load the workbook. SpreadsheetGear.IWorkbook workbook = SpreadsheetGear.Factory.GetWorkbook(@"MyWorkbook.xlsx"); // Get a range of cells as an array of object[,]. object[,] values = (object[,])workbook.Worksheets["MySheet"].Cells["A1:J10"].Value; 

SpreadsheetGear还提供了用于一次访问单元格的快速API,因此您可以避免将值复制到数组而不牺牲性能。

免责声明:我自己的SpreadsheetGear LLC