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#法式設計有所贊助。