c# excel 가져오기 excel 데이터 여러 개의 작업표를 읽을 때 과학 계수법에 나타난 문제 해결

icrosoft를 호출합니다.Office.Interop.Excel 구성 요소가 excel 문서를 열면 작업표의 개수를 계산하고 작업표의 이름을 추출할 수 있습니다. 이렇게 하면 작업표를 훑어보면 모든 데이터를 조회할 수 있습니다. 코드는 다음과 같습니다.//Interop을 참조해야 합니다.Microsoft.Office.Interop.Excel.dll  Microsoft.Office.Interop.Excel은 COM 구성 요소인 Microsoft Excel XX입니다.0 Object Library
 

  
  
  
  
  1. using Excel = Microsoft.Office.Interop.Excel; // Interop.Microsoft.Office.Interop.Excel.dll 
  2.  
  3. Excel.Application xlApp = new Excel.Application(); ;  
  4.         Excel.Workbook workbook = xlApp.Workbooks.Open(serverpath, 0, false, 5, """"false, Excel.XlPlatform.xlWindows, ""truefalse, 0, true, 1, 0);  
  5.         int n = workbook.Worksheets.Count;  
  6.         string[] sheetSet = new string[n];  
  7.         ArrayList al = new ArrayList();  
  8.         for (int i = 0; i < n; i++)  
  9.         {  
  10.             sheetSet[i] = ((Excel.Worksheet)workbook.Worksheets[i + 1]).Name;  
  11.         }  
  12.         xlApp.Workbooks.Close();//   。  
  13.  

위 코드는 워크시트 개수를 계산하고 이름을 그룹 sheetSet에 저장합니다.특히 문서 닫기 방법은 select 전에 xlApp을 닫아야 합니다.Workbooks.Close();그렇지 않으면 셀 형식에 문제가 생길 수 있습니다.예를 들어 긴 숫자는 과학 계수법으로 나타난다.
데이터를 훑어보면 OK.
 

  
  
  
  
  1. DataSet ds = new DataSet();  
  2.         for (int i = 0; i < n; i++)  
  3.         {  
  4.             ds.Tables.Add();  
  5.             strSql = "select * from [" + sheetSet[i]+"$]";  
  6.             //  
  7.             // TODO:   
  8.             //              
  9.             string strConn = sqlconn(serverpath);  
  10.             OleDbConnection myConnection = new OleDbConnection(strConn);  
  11.             myConnection.Open();  
  12.             OleDbDataAdapter da = new OleDbDataAdapter(strSql, myConnection);  
  13.             try 
  14.             {  
  15.                 da.Fill(ds.Tables[i]);  
  16.             }  
  17.             catch (Exception)  
  18.             {  
  19.                 throw;  
  20.             }  
  21.             finally 
  22.             {  
  23.             }  
  24.                 if (i == n - 1)  
  25.                 {  
  26.                     da.Dispose();  
  27.                     da = null;  
  28.                     myConnection.Close();  
  29.                     myConnection = null;  
  30.                 }  
  31.         } 

이상의 ds는 여러 개의 작업표를 포함하는 데이터를 되돌려줍니다.
ds의tables를 두루 돌아다니면 각 작업표의 데이터를 찾을 수 있습니다.

좋은 웹페이지 즐겨찾기