2011-09-22 6 views
0

C sharp .net 2010에서 Excel 스프레드 시트를 조작해야합니다. Excel 스프레드 시트를 반복하고, 원래 열의 왼쪽에 세 개의 열을 추가합니다. 다른 스프레드 시트의 일부 계산 플러스 일부 다른 기능. 가장 최신의 방법은 무엇입니까? 현재 내가 succefully이 기능으로 엑셀 스프레드 시트를 열고 내가 필요로하는 기록을 읽고 선별을 인쇄하고 있습니다 :C sharp를 사용하여 Excel 스프레드 시트 조작하기

public static void parseData(string excelFileName) 
    { 
     try 
     { 
      //Workbook workBook = _excelApp.Workbooks.Open(excelFileName, Type.Missing, Type.Missing, Type.Missing, Type.Missing, Type.Missing, Type.Missing, Type.Missing, Type.Missing, Type.Missing, Type.Missing, Type.Missing, Type.Missing, Type.Missing, Type.Missing); 
      //Worksheet wkSheet = (Worksheet)_excelApp.Worksheets[1]; 
      //OLEObject oleObject = wkSheet.OLEObjects(Type.Missing); 
      using (OleDbConnection connection = new OleDbConnection("Provider=Microsoft.ACE.OLEDB.12.0;Data Source=" + fileName + ";Extended Properties=\"Excel 12.0;HDR=No;IMEX=1\"")) 
      { 
       connection.Open(); 
       OleDbCommand objCmdSelect = new OleDbCommand("SELECT * FROM [Sheet1$]", connection); 
       OleDbDataAdapter objAdapter1 = new OleDbDataAdapter(); 

       objAdapter1.SelectCommand = objCmdSelect; 
       objAdapter1.Fill(ds); 
      } 

      foreach (System.Data.DataTable myTable in ds.Tables) 
      { 
       //xmlResultSet.Append("<TemplateData>");           
       foreach (DataRow myRow in myTable.Rows) 
       { 
        //Console.WriteLine("Ca0mon, please work :{0}", myRow); 
        Console.WriteLine("This thing better Work-- MRN: {0}| Patient Name: {1}| Address: {2}| CSSV: {3}", myRow[0], myRow[1], myRow[2], myRow[3]); 
       } 
      } 

     } 
     catch(Exception ex) 
     { 
     } 
    } 

최신의 그리고 최고의 .NET 도구로이 문제를 접근하는 방법에 대한 조언을? 당신의 도움을 주셔서 감사합니다.

답변

1

Office 설치시 Interop 라이브러리를 설치하도록 선택하십시오. 이 작업을 완료하면 Add Reference으로 이동하여 COM 탭을 클릭하고 Microsoft Excel 12.0 Objects library을 추가하십시오.

를 사용하여 네임 스페이스 using Microsoft.Office.Interop.Excel;

당신은 다음과 같은 MSDN에 this one로 튜토리얼을 통해 이동합니다.

+0

광산은 Excel 14.0 Objects Library입니다. 그러나 이것은 지금까지 꽤 괜찮은 것 같습니다 ... – SoftwareSavant

+0

@Dmain 예, 사과 12.0은 2007 년이어야합니다. SO를 둘러 보면, 두 시스템을 상호 작용하는 가장 인기있는 방법입니다. – jonsca

3

OpenXML Framework를 사용하여 XML 기반 Office 문서를 조작 할 수도 있습니다. 고객이 Office 2007 또는 2010 만 사용할 때이 방법을 사용하는 것이 더 좋습니다.

Microsoft.Office.Interop.Excel을 사용하는 방법은 코드를 사무실 버전에만 연결하기 때문에 위험합니다. . LateBinding을 사용하여 코드를 작성하고 여러 Office 버전을 지원하는 것이 좋습니다.

세 번째 방법은 효과가 있지만 간단한 시나리오에서만 실용적이라고 생각합니다.

0

NPOI https://npoi.codeplex.com/ 과 같은 오픈 소스 라이브러리 또는 Aspose.Cells, Syncfusion Excel 라이브러리, Softartisan Excel 라이브러리 등의 유료 제품을 사용할 수 있습니다.이 라이브러리의 장점은 Microsoft Office가 섬기는 사람.

관련 문제