2013-01-24 4 views
5

나는 대부분의 문제를 해결했습니다. 워크 시트를 반복 할 수 있고, 텍스트 파일을 작성하고 쓸 수 있습니다. 내가 겪고있는 유일한 문제는 실제로 모든 시트에서 텍스트 나 값을 추출하는 것입니다. 아래에 코드가 있지만 워크 시트 당 하나의 개체를 throw하고 그 단어를 실제 값 대신 텍스트 파일에 씁니다.Excel 워크 시트를 반복하고 C#으로 TXT 파일에 텍스트 저장

System.Object[,] 
System.Object[,] 

그 밖의 무엇입니까? 저는 초급 프로그래머라고 지적해야합니다.

여기에 지금까지 가지고있는 코드는 다음과 같습니다

using (StreamWriter sw = File.CreateText("ExtractedText.txt")) 
{ 
    Excel.Application xlApp = new Excel.Application(); 
    Excel.Workbook thisWkBook = xlApp.Workbooks.Open(thisFile); 

    foreach (Excel.Worksheet sheet in thisWkBook.Worksheets) 
    { 
     sw.WriteLine(sheet.UsedRange.Value); 
    } 
} 

어떤 아이디어? 감사!

답변

3

뭔가, 테스트하지를. http://dontbreakthebuild.com/2011/01/30/excel-and-c-interop-with-net-4-how-to-read-data-from-excel/

using (StreamWriter sw = File.CreateText("ExtractedText.txt")) 
{ 
    var excelApp = new Excel.Application(); 
    var workBook = excelApp.Workbooks.Open(thisFile); 

    foreach (var sheet in workBook.Worksheets) 
    { 
     foreach (var row in sheet.UsedRange.Rows) 
     { 
     foreach (var cell in row.Columns) 
     { 
      sw.Write(cell.Value + " "); 
     } 
     sw.WriteLine(); 
     } 
    } 
} 
+0

아! 그래서 행과 열을 반복해야했습니다! 잡았다. 나는 바로 이것을 시험하고있다, 고마워! – sergeidave

+0

'.Value2' 부분이 작동하지 않았습니다. \t 시트'foreach는 (thisWkBook.Worksheets에서 Excel.Worksheet 시트) \t { \t \t foreach는 (Excel.Range thisRow을 :하지만 당신의 제안에서 시작, 당신이 다음과 같이 'foreach는'문을 가진 세포를 통해 루프를 수 있다는 것을 발견 .UsedRange.Rows) \t \t \t \t { thisRow.Columns에서의 foreach (Excel.Range는 ThisCell) \t \t \t \t { \t sw.Write (thisCell.Value + ""); \t \t} \t \t sw.WriteLine(); \t \t} '답변을 최종 답안으로 선택할 수 있도록 업데이트 하시겠습니까? – sergeidave

1

당신은 예를 들어, 시트 프론트 데이터를 얻을 필요가 :이 같은

sw.WriteLine(sheet.Range["C5"].Value.ToString()); 
+0

이것은 올바른 방향으로 가리키고 있습니다 (실제로는 'Range [ "C5"]', 대괄호 포함). 감사! – sergeidave

+0

도와 줘서 기쁩니다! VB.Net의 조언에 감사드립니다. : P – SysDragon