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

高洛峰
发布: 2017-01-18 09:36:58
原创
1664人浏览过

//加载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转换的实例代码相关文章请关注php中文网!

WPS零基础入门到精通全套教程!
WPS零基础入门到精通全套教程!

全网最新最细最实用WPS零基础入门到精通全套教程!带你真正掌握WPS办公! 内含Excel基础操作、函数设计、数据透视表等

下载
来源:php中文网
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系admin@php.cn
最新问题
开源免费商场系统广告
热门教程
更多>
最新下载
更多>
网站特效
网站源码
网站素材
前端模板
关于我们 免责申明 意见反馈 讲师合作 广告合作 最新更新
php中文网:公益在线php培训,帮助PHP学习者快速成长!
关注服务号 技术交流群
PHP中文网订阅号
每天精选资源文章推送
PHP中文网APP
随时随地碎片化学习
PHP中文网抖音号
发现有趣的

Copyright 2014-2025 https://www.php.cn/ All Rights Reserved | php.cn | 湘ICP备2023035733号