Home > Backend Development > C#.Net Tutorial > C# example code for EXCEL DataTable conversion

C# example code for EXCEL DataTable conversion

高洛峰
Release: 2017-01-18 09:36:58
Original
1407 people have browsed it

//加载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; 
        }
Copy after login

For more C# example codes for operating EXCEL DataTable conversion and related articles, please pay attention to the PHP Chinese website!

Related labels:
source:php.cn
Statement of this Website
The content of this article is voluntarily contributed by netizens, and the copyright belongs to the original author. This site does not assume corresponding legal responsibility. If you find any content suspected of plagiarism or infringement, please contact admin@php.cn
Popular Tutorials
More>
Latest Downloads
More>
Web Effects
Website Source Code
Website Materials
Front End Template