programing

단일 Excel 셀 값을 읽는 방법

i4 2023. 4. 26. 22:57
반응형

단일 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오류가 표시되기 때문에 속성이 표시됩니다.

셀이 다음과 같은 경우 빈 문자열을 반환하려면NullConvert.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

반응형