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

    技术2022-05-20  46

     

    上次发布了一个用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开发

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


    最新回复(0)