我如何從Excel工作表讀取數據並將標記的選擇(區域)加載到多維數組中? Excel中的列本身可以是多維數組,因爲它包含的不僅僅是一個值。從Excel中讀取(範圍到多維數組)C#
想法(不知道這有多好或不好)現在是通過所有的Excel.Area(選定的字段)執行for循環,並將該字段的內容添加到多維數組中。由於多維數組的類型爲object [,],因此非泛型,因此沒有方便的add()方法。所有這些都需要手動完成。
任何想法,如果這種方法是好的,或者如果它可以更有效地完成?
我如何從Excel工作表讀取數據並將標記的選擇(區域)加載到多維數組中? Excel中的列本身可以是多維數組,因爲它包含的不僅僅是一個值。從Excel中讀取(範圍到多維數組)C#
想法(不知道這有多好或不好)現在是通過所有的Excel.Area(選定的字段)執行for循環,並將該字段的內容添加到多維數組中。由於多維數組的類型爲object [,],因此非泛型,因此沒有方便的add()方法。所有這些都需要手動完成。
任何想法,如果這種方法是好的,或者如果它可以更有效地完成?
您可以閱讀範圍的值作爲數組:
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
}
此代碼段是從.NET wrapper for MS Office。但是同樣的原則是在MS Excel中的VSTO或VBA中。
下面是C#代碼來做到這一點與SpreadsheetGear:
// 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
爲什麼使用SpreadsheetGear和Excel Interop更好? – gyurisc 2010-01-12 09:25:05