[NPOI版]C#.NET将数组导入Excel源代码

来源:互联网 发布:java防止反编译 编辑:程序博客网 时间:2024/06/05 19:49

 

上次发布了一个用Excel组件将数据导入到Excel的代码,用的过程中,感觉不好,特别是速度很慢。在博客园看到了一个NPOI Excel读写的开源组件,很不错,还是国人开发的。赞一个,谢谢NPOI开发团队,有这么好的东西奉献给大家啊。呵呵,我也把自己使用的代码奉献一下,也算推广一下吧。这个东西使用的好处是:使用简单,速度特快。NPOI的使用教程很详细,下面直接上代码:

using NPOI.Util;
using NPOI.HSSF.Model ;
using NPOI.HSSF.UserModel ;
using NPOI.HSSF ;

......

Code// 将数据集转换到Excel: ConvertDataTableToExcel   ConvertDataGridViewToExcel
        // 目前支持的数据类型有:DataTable,二维数组,二维交错数组,DataGridView,ArrayList
        // 2010.01.03 采用NPOI类库,改善操作速度,便于扩展

        ///
        /// 将数据集导出到Excel文件
        ///
        /// 一维数组
        /// Excel文件名称
        /// 工作簿名称
        /// 是否转换成功
        public static bool ConvertToExcel(T[] data,string xlsSaveFileName,string sheetName)
        {
            FileStream fs = new FileStream (xlsSaveFileName, FileMode.Create ) ;
            try
            {
                HSSFWorkbook newBook = new HSSFWorkbook () ;
                HSSFSheet    newSheet =(HSSFSheet ) newBook.CreateSheet (sheetName ) ;//新建工作簿
                HSSFRow      newRow = (HSSFRow )newSheet.CreateRow(0) ;//创建行
                for (int i = 0 ; i //写入数据
                }
                newBook .Write (fs ) ;
                return true ;
            }
            catch (Exception err)
            {
                throw new Exception ("转换数据到Excel失败:"+err.Message ) ;
            }
            finally
            {
                fs.Close () ;
            }
        }
        ///
        /// 将数据集导出到Excel文件
        ///
        /// 二维数组
        /// Excel文件名称
        /// 工作簿名称
        /// 是否转换成功
        public static bool ConvertToExcel(T[,]  data,string xlsSaveFileName,string sheetName)
        {
            FileStream fs = new FileStream (xlsSaveFileName, FileMode.Create ) ;
            try
            {
                HSSFWorkbook newBook = new HSSFWorkbook () ;
                HSSFSheet    newSheet =(HSSFSheet ) newBook.CreateSheet (sheetName ) ;//新建工作簿
                for (int i = 0 ; i //创建行
                    for (int j = 0 ; j //写入数据
                    }
                }
                newBook .Write (fs ) ;
                return true ;
            }
            catch (Exception err)
            {
                throw new Exception ("转换数据到Excel失败:"+err.Message ) ;
            }
            finally
            {
                fs.Close () ;
            }
        }
        ///
        ///         ///
        /// 将数据集导出到Excel文件
        ///
        /// 交错数组
        /// Excel文件名称
        /// 工作簿名称
        /// 是否转换成功
        ///
        public static bool ConvertToExcel(T[][] data,string xlsSaveFileName,string sheetName)
        {
            FileStream fs = new FileStream (xlsSaveFileName, FileMode.Create ) ;
            try
            {
                HSSFWorkbook newBook = new HSSFWorkbook () ;
                HSSFSheet    newSheet =(HSSFSheet ) newBook.CreateSheet (sheetName ) ;//新建工作簿
                for (int i = 0 ; i //创建行
                    for (int j = 0 ; j //写入数据
                    }
                }
                newBook .Write (fs ) ;
                return true ;
            }
            catch (Exception err)
            {
                throw new Exception ("转换数据到Excel失败:"+err.Message ) ;
            }
            finally
            {
                fs.Close () ;
            }
        }
        ///
        /// 将数据集导出到Excel文件
        ///
        /// DataTable对象
        /// Excel文件名称
        /// 工作簿名称
        /// 是否转换成功
        public static bool ConvertToExcel(System.Data.DataTable dt, string xlsSaveFileName,string sheetName)
        {
            FileStream fs = new FileStream (xlsSaveFileName, FileMode.Create ) ;
            try
            {
                HSSFWorkbook newBook = new HSSFWorkbook () ;
                HSSFSheet    newSheet =(HSSFSheet ) newBook.CreateSheet (sheetName ) ;//新建工作簿
                for (int i = 0 ; i //创建行
                    for (int j = 0 ; j //写入数据
                    }
                }
                newBook .Write (fs ) ;
                return true ;
            }
            catch (Exception err)
            {
                throw new Exception ("转换数据到Excel失败:"+err.Message ) ;
            }
            finally
            {
                fs.Close () ;
            }
        }
        ///
        /// 将数据集导出到Excel文件
        ///
        /// DataGridView对象
        /// Excel文件名称
        /// 工作簿名称
        /// 是否转换成功
        public static bool ConvertToExcel(System.Windows.Forms.DataGridView dgv, string xlsSaveFileName,string sheetName)
        {
            return ConvertToExcel((System.Data.DataTable )dgv.DataSource  ,xlsSaveFileName,sheetName )  ;
        }下面是导入数据到DataTable:

Code///
        /// 将数据导出到DataTable中
        ///
        /// 二维数组数据
        /// 列名
        /// DataTable对象
        public static System.Data.DataTable ConvertToDataTable(T[,] data , string[] columnsName)
        {
            System.Data.DataTable dt = new System.Data.DataTable () ;
            if (data.GetLength (1)>columnsName.Length )
            {
                throw new Exception ("列名长度不足");
            }
            try
            {
                //先添加列名
                for (int i = 0 ; i new DataColumn (columnsName [i ],typeof (System.String ) ) ;
                    dt.Columns.Add (dc ) ;
                }
                //添加数据
                for (int i = 0 ;i for (int j =0 ; j return dt ;
            }
            catch (Exception err)
            {
                throw new Exception ("转换数据到DataTable失败:"+err.Message ) ;
            }
        }
        ///
        /// 将数据导出到DataTable中
        ///
        /// 二维数组数据
        /// DataTable对象
        public static System.Data.DataTable ConvertToDataTable(T[,] data )
        {
            System.Data.DataTable dt = new System.Data.DataTable () ;
            try
            {
                //先添加列名
                for (int i = 0 ; i new DataColumn() ;
                    dt.Columns.Add (dc ) ;
                }
                //添加数据
                for (int i = 0 ;i for (int j =0 ; j return dt ;
            }
            catch (Exception err)
            {
                throw new Exception ("转换数据到DataTable失败:"+err.Message ) ;
            }
        }
        ///
        /// 将数据导出到DataTable中
        ///
        /// 交错数组数据
        /// 列名
        /// DataTable对象
        public static System.Data.DataTable ConvertToDataTable(T[][] data , string[] columnsName)
        {
            System.Data.DataTable dt = new System.Data.DataTable () ;
            if (data[0].Length >columnsName.Length )
            {
                throw new Exception ("列名长度不足");
            }
            try
            {
                //先添加列名
                for (int i = 0 ; i new DataColumn (columnsName [i ],typeof (System.String ) ) ;
                    dt.Columns.Add (dc ) ;
                }
                //添加数据
                for (int i = 0 ;i for (int j =0 ; j return dt ;
            }
            catch (Exception err)
            {
                throw new Exception ("转换数据到DataTable失败:"+err.Message ) ;
            }
        }
        ///
        /// 将数据导出到DataTable中
        ///
        /// 交错数组数据
        /// DataTable对象
        public static System.Data.DataTable ConvertToDataTable(T[][] data)
        {
            System.Data.DataTable dt = new System.Data.DataTable () ;
            try
            {
                //先添加列名
                for (int i = 0 ; i new DataColumn ( ) ;
                    dt.Columns.Add (dc ) ;
                }
                //添加数据
                for (int i = 0 ;i for (int j =0 ; j return dt ;
            }
            catch (Exception err)
            {
                throw new Exception ("转换数据到DataTable失败:"+err.Message ) ;
            }
        }到此为止哦。这玩意的确好使,下次再用用看,里面功能很丰富啊。

编程爱好者,关注.NET软件开发,Matlab混合编程及网络技术

欢迎光临我的Cnblog博客:http://www.cnblogs.com/asxinyu/

欢迎大家进行交流,QQ :1287263703

E-mail:asxinyu@qq.com,asxinyu@126.com

Tag标签: Matlab,Matlab开发,Matlab混合编程,C#.NET开发

本文来自CSDN博客,转载请标明出处:http://blog.csdn.net/asxinyu_usst/archive/2011/01/19/6151481.aspx

原创粉丝点击