•   欢迎来到21NN网.
  •   请记住本站网址www.21nn.cn

C#操纵EXCEL DataTable转换的实例代码【C#.Net教程】,EXCEL DataTable 转换

摘要: //加载ExcelpublicDataSetLoadDataFromExcel(stringfilePath){t...
//加载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; 
        }

更多C#操纵EXCEL DataTable转换的实例代码相干文章请关注ki4网!

分享到:

发表评论

评论列表

还没有评论,快来说点什么吧~

公众号二维码

微信公众号