程序師世界是廣大編程愛好者互助、分享、學習的平台,程序師世界有你更精彩!
首頁
編程語言
C語言|JAVA編程
Python編程
網頁編程
ASP編程|PHP編程
JSP編程
數據庫知識
MYSQL數據庫|SqlServer數據庫
Oracle數據庫|DB2數據庫
 程式師世界 >> 編程語言 >> .NET網頁編程 >> C# >> C#入門知識 >> c#讀取excel辦法實例剖析

c#讀取excel辦法實例剖析

編輯:C#入門知識

c#讀取excel辦法實例剖析。本站提示廣大學習愛好者:(c#讀取excel辦法實例剖析)文章只能為提供參考,不一定能成為您想要的結果。以下是c#讀取excel辦法實例剖析正文


本文實例講述了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

看到服裝論壇t.vhao.net外面赓續有人發問關於讀取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#法式設計有所贊助。

  1. 上一頁:
  2. 下一頁:
Copyright © 程式師世界 All Rights Reserved