国产探花免费观看_亚洲丰满少妇自慰呻吟_97日韩有码在线_资源在线日韩欧美_一区二区精品毛片,辰东完美世界有声小说,欢乐颂第一季,yy玄幻小说排行榜完本

首頁 > 學院 > 開發設計 > 正文

C#中對Excel進行操作

2019-11-17 02:14:02
字體:
來源:轉載
供稿:網友

C#中對Excel進行操作

工作中要處理一批數據,主要是處理從別處導出來的Excel表格(大概有一千多行,三十多列),拿到表格對Excel表格進行分析,按照一定的規則進行拆分成為一萬多行的數據;首先這個需求要用程序進行處理的背景是人工進行拆分已經耗費了一周人天的資源,所以要用C#對數據進行處理,來提高工作效率。開始的想法是把Excel中的數據導入到C#的一個容器中,對容器進行操作,但是拿到規則之后,發現規則太過于復雜,最后的方案變成把Excel數據導入到數據庫中,然后,在數據庫中進行數據處理,然后再把數據庫中的數據導出到Excel表格中。

閱讀目錄

  • 把Excel中的數據導入到數據庫中
  • 處理Excel中的數據
  • 導出數據庫中的數據到Excel中
  • 總結
回到頂部

把Excel中的數據導入到數據庫中

在Excel數據到數據庫中時,首先要上傳這個Excel表格,然后找到數據的sheet頁,然后把需要的列數據導入到數據庫中,其中要注意Excel版本兼容性的問題。其具體的代碼如下:

 1 if (FileUpload1.HasFile == false)//HasFile用來檢查FileUpload是否有指定文件 2             { 3                 Response.Write("<scraspx_A = dr[i].ItemArray[0].ToString().Replace("'","");30                     string hhaspx_B = dr[i].ItemArray[1].ToString();31                     string hhaspx_C = dr[i].ItemArray[2].ToString();32                     string hhaspx_D = dr[i].ItemArray[3].ToString();33                     string hhaspx_E = dr[i].ItemArray[4].ToString().Replace("'", "");34                     string hhaspx_H = dr[i].ItemArray[7].ToString();35                     string hhaspx_I = dr[i].ItemArray[8].ToString();36                     string hhaspx_J = dr[i].ItemArray[9].ToString();37                     string hhaspx_N = dr[i].ItemArray[13].ToString().Replace("'", "");38                     string hhaspx_P = dr[i].ItemArray[15].ToString().Replace("'", "");39                     string hhaspx_S = dr[i].ItemArray[18].ToString();40                     string hhaspx_X = dr[i].ItemArray[23].ToString().Replace("'", "");41                     string hhaspx_AB = dr[i].ItemArray[27].ToString();42                     string insertstr = "INSERT INTO dbo.S_DataToExcel ( hhaspx_A , hhaspx_B , hhaspx_C , hhaspx_D , hhaspx_E , hhaspx_H , hhaspx_I , Hhaspx_J , hhaspx_N , hhaspx_P ,  hhaspx_S , hhaspx_X ,  hhaspx_AB)";43                         insertstr += "values ( '" + hhaspx_A + "' , cast('" + hhaspx_B + "' as int) ,cast( '" + hhaspx_C + "' as int) ,cast( '" + hhaspx_D + "' as int),'" + hhaspx_E + "', cast('" + hhaspx_H + "' as int) ,cast('" + hhaspx_I + "' as int),cast( '" + hhaspx_J + "' as int), '" + hhaspx_N + "', '" + hhaspx_P + "' ,  cast('" + hhaspx_S + "' as int), '" + hhaspx_X + "' ,  '" + hhaspx_AB + "')";44                         SqlCommand cmd = new SqlCommand(insertstr, cn);45                         try46                         {47                             cmd.ExecuteNonQuery();48                         }49                         catch (MembershipCreateUserException ex)       //捕捉異常50                         {51                             Response.Write("<script>alert('導入內容:" + ex.Message + "')</script>");52                         }53                    54                 }55             }

從上傳路徑的Excel中獲取Excel中的數據并裝載到相應的容器之中:

 1 public DataSet ExecleDs(string filenameurl, string table) 2         { 3             //"

如果我們本地的系統中沒有安裝“Microsoft.ACE.OLEDB.12.0”相關的組件,建議在微軟官網進行安裝并下載;

回到頂部

處理Excel中的數據

調用數據庫的存儲過程,把數據按照規則進行轉換,并輸出轉換的結果,存儲過程處理數據的部分就不再贅述。

回到頂部

導出數據庫中的數據到Excel中

把存儲過程轉換過后的數據進行獲取并放到打他table中導出到Excel表格中。

1  string getDataSql = "EXEC sp_Tools_ExcelTrans";2 3                 SqlCommand cmd1 = new SqlCommand(getDataSql, cn);4                 SqlDataAdapter sda = new SqlDataAdapter(cmd1);5                 DataTable Dt = new DataTable();6                 sda.Fill(Dt);7 8                 //然后把數據進行導出來9                 DataChangeExcel.DataSetToExcel(Dt, Server.MapPath("~//upfiles//outputFormDataBase.xls"));

其中把Datatable數據導出到Excel中的方法:

 1 using System; 2 using System.Collections.Generic; 3 using System.Data; 4 using System.Web; 5 using Microsoft.Office.Interop; 6  7 /// <summary> 8 /// DataChangeExcel 的摘要說明 9 /// </summary>10 11     public class DataChangeExcel12     {13         /// <summary>14         /// 數據庫轉為excel表格15         /// </summary>16         /// <param name="dataTable">數據庫數據</param>17         /// <param name="SaveFile">導出的excel文件</param>18         public static void DataSetToExcel(DataTable dataTable, string SaveFile)19         {20             Microsoft.Office.Interop.Excel.application excel;21             Microsoft.Office.Interop.Excel._Workbook workBook;22             Microsoft.Office.Interop.Excel._Worksheet workSheet;23             object misValue = System.Reflection.Missing.Value;24             excel = new Microsoft.Office.Interop.Excel.ApplicationClass();25             workBook = excel.Workbooks.Add(misValue);26             workSheet = (Microsoft.Office.Interop.Excel._Worksheet)workBook.ActiveSheet;27             int rowIndex = 1;28             int colIndex = 0;29             //取得標題30             foreach (DataColumn col in dataTable.Columns)31             {32                 colIndex++;33                 excel.Cells[1, colIndex] = col.ColumnName;34             }35             //取得表格中的數據36             foreach (DataRow row in dataTable.Rows)37             {38                 rowIndex++;39                 colIndex = 0;40                 foreach (DataColumn col in dataTable.Columns)41                 {42                     colIndex++;43                     excel.Cells[rowIndex, colIndex] =44                          row[col.ColumnName].ToString().Trim();45                     //設置表格內容居中對齊46                       excel.Cells[rowIndex, colIndex]).HorizontalAlignment =47                       Microsoft.Office.Interop.Excel.XlVAlign.xlVAlignCenter;48                 }49             }50             excel.Visible = false;51             workBook.SaveAs(SaveFile, Microsoft.Office.Interop.Excel.XlFileFormat.xlWorkbookNormal, misValue,52                 misValue, misValue, misValue, Microsoft.Office.Interop.Excel.XlSaveAsaccessMode.xlExclusive,53                 misValue, misValue, misValue, misValue, misValue);54             dataTable = null;55             workBook.Close(true, misValue, misValue);56             excel.Quit();57             PublicMethod.Kill(excel);//調用kill當前excel進程58
發表評論 共有條評論
用戶名: 密碼:
驗證碼: 匿名發表
主站蜘蛛池模板: 合水县| 丰城市| 凤山市| 惠来县| 姜堰市| 马尔康县| 额敏县| 陇南市| 涟源市| 莆田市| 思茅市| 锡林浩特市| 青海省| 休宁县| 五大连池市| 米泉市| 开阳县| 宜兴市| 都昌县| 泽州县| 邛崃市| 珲春市| 海淀区| 华阴市| 家居| 龙井市| 乐业县| 德兴市| 庆阳市| 东台市| 望江县| 靖安县| 长海县| 札达县| 勃利县| 苗栗县| 徐州市| 葫芦岛市| 云浮市| 资溪县| 玛纳斯县|