源码网商城,靠谱的源码在线交易网站 我的订单 购物车 帮助

源码网商城

C#操作EXCEL DataTable转换的实例代码

  • 时间:2022-06-13 16:25 编辑: 来源: 阅读:
  • 扫一扫,手机访问
摘要:C#操作EXCEL DataTable转换的实例代码
[u]复制代码[/u] 代码如下:
//加载Excel          public   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'";                 strConn = string.Format("Provider=Microsoft.ACE.OLEDB.12.0;Data Source={0};Extended Properties='Excel 8.0;HDR=Yes;IMEX=1;'", filePath);                 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)             {                 return null;             }         }         /// <summary>         /// DataTable直接导出Excel,此方法会把DataTable的数据用Excel打开,再自己手动去保存到确切的位置         /// </summary>         /// <param name="dt">要导出Excel的DataTable</param>         /// <returns></returns>         public bool DoExport(System.Data.DataTable dt)         {             Microsoft.Office.Interop.Excel.Application app = new ApplicationClass();             if (app == null)             {                 throw new Exception("Excel无法启动");             }             app.Visible = true;             Workbooks wbs = app.Workbooks;             Workbook wb = wbs.Add(Missing.Value);             Worksheet ws = (Worksheet)wb.Worksheets[1];             int cnt = dt.Rows.Count;             int columncnt = dt.Columns.Count;             // *****************获取数据********************             object[,] objData = new Object[cnt + 1, columncnt];  // 创建缓存数据             // 获取列标题             for (int i = 0; i < columncnt; i++)             {                 objData[0, i] = dt.Columns[i].ColumnName;             }             // 获取具体数据             for (int i = 0; i < cnt; i++)             {                 System.Data.DataRow dr = dt.Rows[i];                 for (int j = 0; j < columncnt; j++)                 {                     objData[i + 1, j] = dr[j];                 }             }             //********************* 写入Excel******************             Range r = ws.get_Range(app.Cells[1, 1], app.Cells[cnt + 1, columncnt]);             r.NumberFormat = "@";             //r = r.get_Resize(cnt+1, columncnt);             r.Value2 = objData;             r.EntireColumn.AutoFit();             app = null;             return true;         }
  • 全部评论(0)
联系客服
客服电话:
400-000-3129
微信版

扫一扫进微信版
返回顶部