C# 讀取 儲存 匯出 匯入 EXCEL
‧OleDB方式 讀取 EXCEL檔案取得到DtatTable中
此方法稍為修改一下也能用來讀取ACCESS
此方法稍為修改一下也能用來讀取ACCESS
////// 讀取EXCEL並存放到DataSet中 /// /// 檔案路徑/// 第一行為欄位名稱/// 全部為文字/// 指定活頁簿名稱///DataSet private System.Data.DataSet ReadExcel(String strPath, Boolean boHDR, Boolean boIMEX, String strSheetName) { #region ========================================================= 參數 & 元件宣告 // 迴傳的DataSet System.Data.DataSet DS = new System.Data.DataSet(); // 該檔中的活頁簿名稱 System.Data.DataTable DT_SheetName = new System.Data.DataTable(); // 取資料 System.Data.OleDb.OleDbDataAdapter DA; // 連線字串 String strConn = String.Empty; // SQL語法 String strSQL = "SELECT * FROM [{0}]"; // 判斷Excel版本並區別連線字串 System.IO.FileInfo FI = new System.IO.FileInfo(strPath); #endregion ====================================================== 參數 & 元件宣告 #region ========================================================= 判斷連線字串 // 檔案不存在返回空DataSet if (!FI.Exists) return DS; // 判斷 Excel 版本來決定不同的連線字串 if (FI.Extension == ".xls") { strConn = "Provider=Microsoft.Jet.OLEDB.4.0;Data Source ={0};Extended Properties= 'Excel 8.0;HDR={1};IMEX={2};'"; } else if (FI.Extension == ".xlsx") { strConn = "Provider=Microsoft.ACE.OLEDB.12.0;Data Source ={0};Extended Properties= 'Excel 12.0;HDR={1};IMEX={2};'"; } else { return DS; } // 組合連線字串參數 strConn = String.Format(strConn, strPath, ((boHDR) ? "YES" : "NO"), ((boIMEX) ? "1" : "0")); #endregion ====================================================== 判斷連線字串 #region ========================================================= 讀取EXCEL資料 try { using (System.Data.OleDb.OleDbConnection CONN = new System.Data.OleDb.OleDbConnection()) { CONN.ConnectionString = strConn; // 取得Sheet名稱 CONN.Open(); DT_SheetName = CONN.GetOleDbSchemaTable(System.Data.OleDb.OleDbSchemaGuid.Tables, null); CONN.Close(); // 取得單一 Sheet if (strSheetName != "") { DA = new System.Data.OleDb.OleDbDataAdapter(String.Format(strSQL, strSheetName + "$"), CONN); DA.Fill(DS, strSheetName); } // 取得全部 Sheet else { // 取得所有Sheet資料到DataSet中 for (int i = 0; i < DT_SheetName.Rows.Count; i += 3) { DA = new System.Data.OleDb.OleDbDataAdapter(String.Format(strSQL, DT_SheetName.Rows[i]["TABLE_NAME"].ToString()), CONN); DA.Fill(DS, DT_SheetName.Rows[i]["TABLE_NAME"].ToString().Replace("'", "").Replace("$", "")); } } } } catch { DS = null; } #endregion ====================================================== 讀取EXCEL資料 return DS; }
您好:
回覆刪除我本身對程式沒有研究,因為研究需要,老師叫我把一千多筆excel檔案,複製每個檔案的第二行貼到一個excel哩,因為檔案實在太多,想找網路上有沒有軟體可以做,而搜尋到你的程式碼
因此,有個無理的拜託,但真的很需要!!
想請問你可以把你的程式碼匯出成一個exe檔案給我嗎?很抱歉這是你的智慧結晶,但是真的很希望可以得到您的幫忙,拜託了!!
我的mail: xg2320@gmail.com
請問第一行,路徑的部分格式該怎麼放,以下是我的路徑C:/App/CharstAndroid-master(1)/CharstAndroid-master/DATA.xls,這樣套進去好像不太對private System.Data.DataSet ReadExcel(String C:/App/CharstAndroid-master(1)/CharstAndroid-master/DATA, Boolean ECG, Boolean boIMEX, String DATA),可以麻煩你幫我解答嗎
回覆刪除