npoi的使用方法

使用NPOI导出Excel代码如下,直接上代码,代码可以直接运行

     private static MemoryStream RenderToExcel(DataTable dt)
        {
            if (Equals(dt, null))
            {
                return null;
            }

            MemoryStream ms = new MemoryStream();
            using (dt)
            {
                IWorkbook workbook = new HSSFWorkbook();
                ISheet sheet = workbook.CreateSheet();
                IRow headerRow = sheet.CreateRow(0);
                foreach (DataColumn column in dt.Columns)
                {
                    headerRow.CreateCell(column.Ordinal).SetCellValue(column.Caption);
                }

                int rowIndex = 1;
                foreach (DataRow row in dt.Rows)
                {
                    IRow dataRow = sheet.CreateRow(rowIndex);

                    foreach (DataColumn column in dt.Columns)
                    {
                        dataRow.CreateCell(column.Ordinal).SetCellValue(row[column.Caption].ToString());
                    }
                    rowIndex++;
                }

                workbook.Write(ms);
                ms.Flush();
                ms.Position = 0;

            }

            return ms;
        }
        private static void SaveToFile(MemoryStream ms, string dirPath, string fileName)
        {
            if (string.IsNullOrEmpty(dirPath) || string.IsNullOrEmpty(fileName))
            {
                return;
            }

            if (!Directory.Exists(dirPath))
            {
                Directory.CreateDirectory(dirPath);
            }

            using (FileStream fs = new FileStream(string.Format("{0}{1}", dirPath, fileName), FileMode.Create))
            {
                byte[] data = ms.ToArray();
                fs.Write(data, 0, data.Length);
                fs.Flush();

                data = null;
            }
        }
     public static void SaveExcel(DataTable dt, string dirPath, string fileName)
        {
            SaveToFile(RenderToExcel(dt), dirPath, fileName);
        }

说明:因为使用的是第三方的,需要引入dll文件

请到http://npoi.codeplex.com/releases/view/115353下载npoi,有源码,有编译好的dll文件,下载好以后需要引入"NPOI.dll"

npoi的使用方法

时间: 2024-10-10 02:30:43

npoi的使用方法的相关文章

npoi读写excel

npoi读取excel方法: 首先下载:npoi.dll 添加引用: //读写excel需要的组建using NPOI.HPSF;using NPOI.HSSF.UserModel;using NPOI.POIFS.FileSystem;using NPOI.HSSF.Util;using NPOI.SS.UserModel;using NPOI.XSSF.UserModel;using NPOI.OpenXml4Net; IWorkbook workbook = null;//全局workbo

让C# Excel导入导出,支持不同版本的Office

问题:最近在项目中遇到,不同客户机安装不同Office版本,在导出Excel时,发生错误. 找不到Excel Com组件,错误信息如下. 未能加载文件或程序集“Microsoft.Office.Interop.Excel, Version=12.0.0.0, Culture=neutral, PublicKeyToken=71e9bce111e9429c”或它的某一个依赖项.系统找不到指定的文件. 解决方法: 1.引用高版本的的Excel.dll组件,最新版本14.0.0 防止客户安装高版本如O

Net操作Excel(终极方法NPOI)

http://www.cnblogs.com/stone_w/archive/2012/08/02/2620528.html Net操作Excel(终极方法NPOI) 前言 Asp.net/C#操作Excel已经是老生长谈的事情了,可下面我说的这个NPOI操作Excel,应该是最好的方案了,没有之一,使用NPOI能够帮助开发者在没有安装微软Office的情况下读写Office 97-2003的文件,支持的文件格式包括xls, doc, ppt等.NPOI是构建在POI 3.x版本之上的,它可以在

.NET-使用NPOI组件将数据导出Excel-通用方法

一.Excel导入及导出问题产生: 从接触.net到现在一直在维护一个DataTable导出到Excel的类,时不时还会维护一个导入类.以下是时不时就会出现的问题:导出问题: 如果是asp.net,你得在服务器端装Office,几百M呢,还得及时更新它,以防漏洞,还得设定权限允许ASP.net访问COM+,听说如果导出过程中出问题可能导致服务器宕机. Excel会把只包含数字的列进行类型转换,本来是文本型的,它非要把你转成数值型的,像身份证后三位变成000,编号000123会变成123,够智能吧

用NPOI创建Excel、合并单元格、设置单元格样式、边框的方法

今天在做项目中,遇到使用代码生成具有一定样式的Excel,找了很多资料,最后终于解决了,Excel中格式的设置,以及单元格的合并等等.下面就介绍下,使用NPOI类库操作Excel的方法. 1.首先我们先在内存中生成一个Excel文件,代码如下:   HSSFWorkbook book = new HSSFWorkbook();        ISheet sheet = book.CreateSheet("Sheet1"); 2.然后在新创建的sheet里面,创建我们的行和列,代码如下

共享一个MVC4通过NPOI导出excel的通用方法

1 public static System.IO.MemoryStream ExportExcel<T>(string title, List<T> objList, params string[] excelPropertyNames) 2 { 3 NPOI.SS.UserModel.IWorkbook workbook = new NPOI.HSSF.UserModel.HSSFWorkbook(); 4 NPOI.SS.UserModel.ISheet sheet = wo

使用NPOI方法导出数据到excel表中

使用NPOI方法导出到excel可以大量提高导出速度!步骤如下: (1)使用NPOI首先要有NPOI开发包(网上直接搜资源有的) (2)解压后把下边两个文件拷贝到自己的项目下(在bin目录下 .net4.0 下的 NPOI.dll和NPOI.xml) 我的项目结构大致如下 使用的是DAL结构 我把NPOI工具集放到了UI层 (3)添加引用(以我的项目为例:在我项目的UI点击引用--游览--然后找到刚才拷贝的两个文件 即可) (4)编写代码: 我的是一个点击事件 "导出" 前提条件就不说

npoi workbook 的 cellstyle 创建不能超过4000的解决方法

利用NPOI进行Excel的工作表(Sheet)复制时,如果复制的工作表(Sheet)较多(100个左右),会报告 workbook 的 cellstyle 创建不能超过4000 的错误. 代码如下: public static void CopySheet(ISheet fromSheet, ISheet toSheet, bool copyValueFlag) { //合并区域处理 MergerRegion(fromSheet, toSheet); System.Collections.IE

C#基于NPOI生成具有精确列宽行高的Excel文件的方法

本文实例讲述了C#基于NPOI生成具有精确列宽行高的Excel文件的方法,是非常具有实用价值的技巧分享给大家供大家参考.具体方法如下:. 一.前言 NPOI是操作Excel的神器,导出导入快如闪电, 但是SetColumnWidth函数个人感觉不会用,怎么弄都无法控制好,因为他是以字符数量去设置宽度,实际上Excel列宽还有个像素的概念,更难搞懂了. //附带SetColumnWidth的用法和注释 IWorkbook hssfworkbook = new HSSFWorkbook(); ISh