Heim  >  Artikel  >  Backend-Entwicklung  >  C#-Beispielcode für die Excel-DataTable-Konvertierung

C#-Beispielcode für die Excel-DataTable-Konvertierung

高洛峰
高洛峰Original
2017-01-18 09:36:581314Durchsuche

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

Weitere C#-Beispielcodes für die Excel-DataTable-Konvertierung und verwandte Artikel finden Sie auf der chinesischen PHP-Website!

Stellungnahme:
Der Inhalt dieses Artikels wird freiwillig von Internetnutzern beigesteuert und das Urheberrecht liegt beim ursprünglichen Autor. Diese Website übernimmt keine entsprechende rechtliche Verantwortung. Wenn Sie Inhalte finden, bei denen der Verdacht eines Plagiats oder einer Rechtsverletzung besteht, wenden Sie sich bitte an admin@php.cn