欧美bbbwbbbw肥妇,免费乱码人妻系列日韩,一级黄片

c#讀取excel方法實(shí)例分析

 更新時(shí)間:2015年06月05日 09:26:34   作者:herbert2008  
這篇文章主要介紹了c#讀取excel方法,實(shí)例分析了C#讀取excel文件的原理與相關(guān)技巧,需要的朋友可以參考下

本文實(shí)例講述了c#讀取excel方法。分享給大家供大家參考。具體分析如下:

Provider根據(jù)實(shí)際EXCEL的版本來設(shè)置,推薦使用ACE接口來讀取。需要Access database Engine。

注意修改注冊表以下兩項(xiàng)的值為0。否則導(dǎo)入EXCEL當(dāng)單元格內(nèi)字符長度超過255會(huì)發(fā)生截?cái)喱F(xiàn)象?。?!

HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Office\12.0\AccessConnectivity Engine\Engines\Excel\TypeGuessRows

64位系統(tǒng)下

HKEY_LOCAL_MACHINE\SOFTWARE\Wow6432Node\Microsoft\Office\12.0\Access Connectivity Engine\Engines\Excel\ TypeGuessRows

看到論壇里面不斷有人提問關(guān)于讀取excel和導(dǎo)入excel的相關(guān)問題。閑暇時(shí)間將我所知道的對excel的操作加以總結(jié),現(xiàn)在共享大家,希望給大家能夠給大家?guī)Я艘欢ǖ膸椭?/p>

另外我們還要注意一些簡單的問題:

①. excel文件只能存儲(chǔ)65535行數(shù)據(jù),如果你的數(shù)據(jù)大于65535行,那么就需要將excel分割存放了。
②. 關(guān)于亂碼,這主要是字符設(shè)置問題。

1.加載Excel(讀取excel內(nèi)容)返回值是一個(gè)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("數(shù)據(jù)綁定Excel失敗!失敗原因:" + err.Message, "提示信息", 
      MessageBoxButtons.OK, MessageBoxIcon.Information); 
    return null; 
  } 
} 

2.寫入Excel內(nèi)容,參數(shù):excelTable是要導(dǎo)入excel的一個(gè)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; 
    } 
    //設(shè)置禁止彈出保存和覆蓋的詢問提示框  
    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("導(dǎo)出Excel出錯(cuò)!錯(cuò)誤原因:" + err.Message, "提示信息", 
      MessageBoxButtons.OK, MessageBoxIcon.Information); 
    return false; 
  } 
  finally 
  { 
  } 
}

希望本文所述對大家的C#程序設(shè)計(jì)有所幫助。

相關(guān)文章

最新評論