단일 Excel 셀 값을 읽는 방법
행 2와 열 10에서 읽어야 할 값이 있는 시트 1이 있는 엑셀 파일을 가지고 있습니다.여기 제 코드가 있습니다.
Excel.Workbook excelWorkbook = excelApp.Workbooks.Open(workbookPath, 0, false, 5, "", "", false, Excel.XlPlatform.xlWindows, "", true, false, 0, true, false, false);
Excel.Sheets excelSheets = excelWorkbook.Worksheets;
string currentSheet = "Sheet1";
Excel.Worksheet excelWorksheet = (Excel.Worksheet)excelSheets.get_Item(currentSheet);
var cell = (Excel.Range)excelWorksheet.Cells[10, 2];
셀 객체인 엑셀을 얻은 후.범위, 저는 그 감방의 내용을 읽는 법을 모릅니다.저는 그것을 배열로 변환하고 루프오버를 시도했고 문자열 배열로 변환하는 등의 시도를 했습니다.저는 그것이 매우 간단하다고 확신합니다.문자열인 셀 값을 하나만 얻을 수 있는 직접적인 방법이 있습니까?
단일 값이므로 문자열(문자열 배열이 아님)에 캐스트해야 합니다.
var cellValue = (string)(excelWorksheet.Cells[10, 2] as Excel.Range).Value;
using Microsoft.Office.Interop.Excel;
string path = "C:\\Projects\\ExcelSingleValue\\Test.xlsx ";
Application excel = new Application();
Workbook wb = excel.Workbooks.Open(path);
Worksheet excelSheet = wb.ActiveSheet;
//Read the first cell
string test = excelSheet.Cells[1, 1].Value.ToString();
wb.Close();
이 예제에서는 'Microsoft Excel 15.0 Object Library'를 사용했지만 이전 버전의 Interop 및 기타 라이브러리와 호환될 수 있습니다.
//THIS IS WORKING CODE
Microsoft.Office.Interop.Excel.Range Range_Number,r2;
Range_Number = wsheet.UsedRange.Find("smth");
string f_number="";
r2 = wsheet.Cells;
int n_c = Range_Number.Column;
int n_r = Range_Number.Row;
var number = ((Range)r2[n_r + 1, n_c]).Value;
f_number = (string)number;
그것은 사용하기에 더 좋습니다..Value() 대신 값 2().이것은 더 빠르고 셀에서 정확한 값을 제공합니다.특정 데이터 유형의 경우 다음과 같은 경우 잘림이 관찰될 수 있습니다.값()이 사용됩니다.
이것 좀 드셔보세요.이게 도움이 될 수도 있어요저한테는 효과가 있어요.
string sValue = (range.Cells[_row, _column] as Microsoft.Office.Interop.Excel.Range).Value2.ToString();
//_row,_column your column & row number
//eg: string sValue = (sheet.Cells[i + 9, 12] as Microsoft.Office.Interop.Excel.Range).Value2.ToString();
//sValue has your value
가치를 얻는 방법은 두 가지가 있습니다.
using xl = Microsoft.Office.Interop.Excel;
// 1. Using Cells with numbered reference
string cellValue = (excelWorksheet.Cells[10, 2] as xl.Range).Text.ToString();
// 2. Using Range with address reference
string cellValue = excelWorksheet.Range["J2"].Text.ToString();
단일 Excel 셀 읽기 문제.Net
빈 셀이 평가된다는 사실에서 비롯됩니다.Null
따라서 사용할 수 없습니다..Value
또는.Value2
오류가 표시되기 때문에 속성이 표시됩니다.
셀이 다음과 같은 경우 빈 문자열을 반환하려면Null
그Convert.ToString(Cell)
다음과 같은 방식으로 사용할 수 있습니다.
Excel.Workbook wkb = Open(excel, filePath);
Excel.Worksheet wk = (Excel.Worksheet)excel.Worksheets.get_Item(1);
for (int i = 1; i < 5; i++)
{
string a = Convert.ToString(wk.Cells[i, 1].Value2);
Console.WriteLine(a);
}
Excel에서 셀 값을 읽을 때 문제가 발생할 수 있습니다.Worksheet
셀이 비어 있는 경우.Value
(또는).Value2
던집니다.null
만약 당신이 그 문제를 제거하고 싶다면, 당신은 그 결과가null
다음과 같은 것:
string strcelltext = Convert.ToString(mySheet.get_Range("A1", "A1").Value2) ?? "";
다음은 objWorksheet를 참조하는 경우에 더 효과적일 수 있는 솔루션입니다.사용된 범위.
Excel.Worksheet mySheet = ...(load a workbook, etc);
Excel.Range myRange = mySheet.UsedRange;
var values = (myRange.Value as Object[,]);
int rowNumber = 3, columnNumber = 5;
string cellValue = Convert.ToString(values[rowNumber, columnNumber]);
언급URL : https://stackoverflow.com/questions/18993735/how-to-read-single-excel-cell-value
'programing' 카테고리의 다른 글
Swift에서 "신고되지 않은 유형의 사용", 유형이 내부이고 동일한 모듈에 존재하는 경우 (0) | 2023.04.26 |
---|---|
언제-만약 vs. ng-show/ng-hide를 선호해야 합니까? (0) | 2023.04.26 |
이클립스 프로젝트에서 메이븐 종속성 누락 (0) | 2023.04.26 |
문자의 첫 번째 항목을 기준으로 문자열 분할 (0) | 2023.04.26 |
오류: iOS9에서 _실행되지 않는 특정 작업 처리 (0) | 2023.04.26 |