c# excel 읽기 방법 실례 분석

3491 단어
본고의 실례는 c#excel을 읽는 방법을 설명한다.여러분에게 참고할 수 있도록 나누어 드리겠습니다.구체적인 분석은 다음과 같다.
Provider는 실제 EXCEL 버전에 따라 설정되며 ACE 인터페이스를 사용하여 읽는 것을 권장합니다.Access database Engine이 필요합니다.
레지스트리 아래 두 항목의 값은 0입니다.그렇지 않으면 EXCEL 가져오기 셀의 문자 길이가 255를 초과하면 차단 현상이 발생합니다!!!
HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Office\12.0\AccessConnectivity Engine\Engines\Excel\TypeGuessRows
64비트 시스템
HKEY_LOCAL_MACHINE\SOFTWARE\Wow6432Node\Microsoft\Office\12.0\Access Connectivity Engine\Engines\Excel\TypeGuessRows
포럼에서 excel을 읽고 excel을 가져오는 것에 대한 질문이 끊임없이 나오는 것을 보았다.여가 시간에 제가 알고 있는 excel에 대한 조작을 정리하고 여러분을 공유하며 여러분께 일정한 도움을 드릴 수 있기를 바랍니다.
그리고 우리는 몇 가지 간단한 문제에 주의해야 한다.
①. excel 파일은 65535줄만 저장할 수 있습니다. 65535줄보다 데이터가 크면 excel을 분할해서 저장해야 합니다.②. 부호에 관해서 이것은 주로 문자 설정 문제이다.
1. Excel 불러오기(excel 내용 읽기) 반환값은 DataSet

// Excel  
public static DataSet LoadDataFromExcel(string filePath) 
{ 
  try 
  { 
    string strConn; 
    strConn = "Provider=Microsoft.Jet.OLEDB.4.0;Data Source=" + filePath + ";Extended Properties='Excel 8.0;HDR=False;IMEX=1'"; 
    OleDbConnection OleConn = new OleDbConnection(strConn); 
    OleConn.Open(); 
    String sql = "SELECT * FROM [Sheet1$]";
    // Sheet , sheet2,   
    OleDbDataAdapter OleDaExcel = new OleDbDataAdapter(sql, OleConn);
    DataSet OleDsExcle = new DataSet(); 
    OleDaExcel.Fill(OleDsExcle, "Sheet1"); 
    OleConn.Close(); 
    return OleDsExcle; 
  } 
  catch (Exception err) 
  { 
    MessageBox.Show(" Excel ! :" + err.Message, " ", 
      MessageBoxButtons.OK, MessageBoxIcon.Information); 
    return null; 
  } 
} 

2. Excel 내용, 인자 쓰기: excelTable은 excel을 가져올 table 테이블입니다.

public static bool SaveDataTableToExcel(System.Data.DataTable excelTable, string filePath) 
{ 
  Microsoft.Office.Interop.Excel.Application app = 
    new Microsoft.Office.Interop.Excel.ApplicationClass(); 
  try 
  { 
    app.Visible = false; 
    Workbook wBook = app.Workbooks.Add(true); 
    Worksheet wSheet = wBook.Worksheets[1] as Worksheet; 
    if (excelTable.Rows.Count > 0) 
    { 
      int row = 0; 
      row = excelTable.Rows.Count; 
      int col = excelTable.Columns.Count; 
      for (int i = 0; i < row; i++) 
      { 
        for (int j = 0; j < col; j++) 
        { 
          string str = excelTable.Rows[i][j].ToString(); 
          wSheet.Cells[i + 2, j + 1] = str; 
        } 
      } 
    } 
    int size = excelTable.Columns.Count; 
    for (int i = 0; i < size; i++) 
    { 
      wSheet.Cells[1, 1 + i] = excelTable.Columns[i].ColumnName; 
    } 
    //   
    app.DisplayAlerts = false; 
    app.AlertBeforeOverwriting = false; 
    //   
    wBook.Save(); 
    // excel   
    app.Save(filePath); 
    app.SaveWorkspace(filePath); 
    app.Quit(); 
    app = null; 
    return true; 
  } 
  catch (Exception err) 
  { 
    MessageBox.Show(" Excel ! :" + err.Message, " ", 
      MessageBoxButtons.OK, MessageBoxIcon.Information); 
    return false; 
  } 
  finally 
  { 
  } 
}


본 논문이 여러분의 C#프로그래밍에 도움이 되기를 바랍니다.

좋은 웹페이지 즐겨찾기