2014-05-20 6 views
0

Excel에서 몇 가지 셀 값을 읽는 방법에 대한 도움말을 찾으십시오. 나는 하나부터 시작할 줄 알았다.Excel 셀 값을 읽는 방법은 무엇입니까?

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[1, 1]; 

나는 운이 없다. 셀의 값을 읽고 어딘가에 저장할 수 있기를 원하며 값을 찾기 위해 몇 초마다 확인해야합니다.

+0

게시 한 코드 예제로 지금까지 무엇을 얻고 있습니까? 조금 더 많은 디버깅을 제공 할 수 있습니까? 정보 – MethodMan

답변

1

당신은 심각하게 EPPLus를 확인하시기 바랍니다 : http://epplus.codeplex.com/

그것은 당신의 프로젝트에 사용을 위해 NuGet에서 사용할 수 있습니다. 그것은 C#과 탁월한 문서 간의 인터페이스 방법 중 가장 쉽고 깨끗한 방법입니다. 그것은 또한 무료입니다, btw.

자습서 : http://www.codeproject.com/Articles/680421/Create-Read-Edit-Advance-Excel-Report-in#1

private DataTable WorksheetToDataTable(ExcelWorksheet oSheet) 
{ 
int totalRows = oSheet.Dimension.End.Row; 
int totalCols = oSheet.Dimension.End.Column; 
DataTable dt = new DataTable(oSheet.Name); 
DataRow dr = null; 
for (int i = 1; i <= totalRows; i++) 
{ 
    if (i > 1) dr = dt.Rows.Add(); 
    for (int j = 1; j <= totalCols; j++) 
    { 
     if (i == 1) 
      dt.Columns.Add(oSheet.Cells[i, j].Value.ToString()); 
     else 
      dr[j - 1] = oSheet.Cells[i, j].Value.ToString(); 
    } 
} 
return dt; 

}

이 EPPLus의 모든 열과 행을 읽습니다. 같은

+0

EPPLus 또는 Excel에서? 이 5 개의 특정 세포를 어떻게 바꿀 수 있습니까? 그래도 dataTable에 저장하고 싶지는 않습니다. 차라리 내 프로그램이하려고하는 변수로 저장하겠습니까. – user3633690

0

뭔가 :

Worksheet sheet = excelWorkbook.Worksheets["Sheet1"] as Worksheet; 
Range rng = sheet.Cells[1,1] as Range; 
object value = rng.Value; 

은 ... 당신이 원하는해야한다. 이걸 시도해보고 실수가 있으면 알려줘.

값 중 하나 string, double, DateTime, bool 또는 int 값이됩니다.

int과는 별도로, 이는 자명합니다. int 값은 가능한 다른 오류 코드를 나타냅니다. #VALUE!

(덧붙여 말하자면 Excel PIA를 참조하는 대신 NuGet을 통해 무료로 제공되는 NetOffice를 사용하여 Excel 개체 모델을 참조하는 것이 좋습니다 .Excel Pure를 사용할 때 특정 버전의 Excel에 묶이지 않는 것이 좋습니다. 당신은 셀의 .Value 또는 .Value2 속성을 검색 할 필요가

0

) 배포 :

if (cell.Value2 == null) 
    // cell is blank 
else if(cell.Value2 is string) 
    // cell is text 
else if (cell.Value is double) 
    // cell is number; 
else if (cell.Value2 is double) 
    // cell is date 

주 마지막 두 if 년대. .Value2은 숫자와 날짜 모두에 대해 double을 반환하지만 .Value은 숫자에 대해서만 double을 반환합니다. 확인하는 순서가 중요합니다.

관련 문제