[원문]
Excel 내용을 읽는 것을 하고 있는데
Excel. range범위를
range = ESheet.get_Range("A1", missing); //A1 셀 선택
range = range.get_Resize(5,5) // A1부터 5,5의 크기
이런 식으로 설정 해줘야 해서.
이런 식으로는 텍스트를 읽어 올 수 있는데
내가 모든 EXCEL 파일의 셀의 크기를 알 수 없어서
읽어 오는 파일 마다 셀의 크기가 다른데 그럴 땐 어떻게 해야 하나
하루 종일 찾았다 ㅜㅜ
(엑셀에서 셀이 만들어 질 수 있는 크기까지 찾아서 모든 크기안에 있는 내용을 찾으려고 했는데
데이터가 너무 커서 오버플로우 남 ㅋ 1048576 x 16384)
셀에 대한 메서드가 따로 있어서
range를 설정 해 줄때 사용된 범위에 있는 마지막 셀을 이용하여
아무 엑셀 파일을 선택하면 텍스트를 읽어 올 수 있게 설정해 주었다.
public string ReadExcel(string path)
{
string filename = path;// string filename = "C:\\test.xlsx";
object missing = System.Reflection.Missing.Value;
Excel.Application EApp = new Excel.Application();
Excel.Workbook EBook;
Excel.Workbooks EBooks;
Excel.Sheets ESheets;
Excel._Worksheet ESheet;
Excel.Range range;
EApp.Visible = false;
// EApp.WindowState = Excel.XlWindowState.xlMinimized;
EBooks = EApp.Workbooks;
EBook = EApp.Workbooks.Open(filename, missing, missing, missing, missing, missing, missing
, missing, missing, missing, missing, missing, missing, missing, missing);
ESheets = EBook.Worksheets;
ESheet = (Excel._Worksheet)EBook.ActiveSheet;
ESheet = (Excel._Worksheet)ESheets.get_Item(1);
range = ESheet.get_Range("A1").SpecialCells(Excel.XlCellType.xlCellTypeLastCell);
long row = range.Row;
long column = range.Column;
String valueString = "";
for (long rowCounter = 1; rowCounter <= row; rowCounter++)
{
for (long colCounter = 1; colCounter <= column; colCounter++)
{
Excel.Range cell = (Excel.Range)ESheet.Cells[rowCounter, colCounter];
if (cell.Value == null)
valueString = string.Concat(valueString, " ");
else
{
valueString = string.Concat(valueString, cell.Value.ToString() + ",");
Console.Write(valueString);
}
textBox1.Text = valueString;
}
valueString = String.Concat(valueString,"\r\n");
}