Excel에서 읽기(다차원 배열 범위) C#
Excel 시트에서 읽고 표시된 선택 항목(Area)을 다차원 배열로 로드하려면 어떻게 해야 합니까?Excel의 열은 하나 이상의 값을 포함하므로 그 자체가 다차원 배열이 될 수 있습니다.
지금 생각하는 것은 (이게 얼마나 좋은지 나쁜지는 확실하지 않습니다) 모든 Excel을 통해 루프를 수행하는 것입니다.영역(선택한 필드)을 지정하고 해당 필드의 내용을 다차원 배열에 추가합니다.다차원 배열은 개체 유형[,]이므로 비범용이므로 편리한 add() 방법이 없습니다.이 모든 작업은 수동으로 수행해야 합니다.
이 접근 방식이 괜찮은지 아니면 더 효율적으로 이루어질 수 있을지에 대한 아이디어가 있습니까?
Range as array의 값을 읽을 수 있습니다.
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에서도 같은 원리가 있습니다.
다음은 스프레드시트기어로 이를 수행하기 위한 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;
스프레드시트기어는 셀에 한 번에 하나씩 액세스할 수 있는 빠른 API도 제공하므로 성능을 저하시키지 않고 배열에 값을 복사할 수 있습니다.
면책 사항:저는 스프레드시트기어 LLC를 소유하고 있습니다.
언급URL : https://stackoverflow.com/questions/910400/reading-from-excel-range-into-multidimensional-array-c-sharp
'programing' 카테고리의 다른 글
| 자바스크립트가 있는 폴더의 파일 이름 목록 가져오기 (0) | 2023.09.21 |
|---|---|
| asp.net 및 c#을 사용하여 Excel 2007 또는 Word 2007 파일을 스트리밍하는 방법 (0) | 2023.09.21 |
| 대량 삽입 또는 최대 절전 모드로 업데이트하시겠습니까? (0) | 2023.09.16 |
| MySQL varchar 변수 선언 및 사용 (0) | 2023.09.16 |
| glibc의 sscanf가 리눅스의 fscanf보다 매우 느린 이유는 무엇입니까? (0) | 2023.09.16 |