关于使用NPOI2.0 进行Excel导出的一些笔记

原创 2013年12月05日 09:00:53
  1. 推荐使用2.0版本,虽然是beta版,但是至少支持office2007以上xlsx等后缀的文件。当让,需要做好文档不全的心理准备
  2. xls后缀文件使用HSSF包,xlsx使用XSSF包。ex,xlsx格式文件,实例化,IWorkbook exportFile = new XSSFWorkbook(templatePath);
  3. demo大部分使用CreateRow,CreateCell等方法,但是,这些方法是重新实例化,会覆盖原有的单元格和列的属性,比如背景色。请改用GetRow和GetCell方法。
  4. Workbook实例化(读取现有excel模板等)消耗的时间可能会比较慢,也可能和我电脑配置渣有关。
  5. 单元格赋值的时候最好使用ToString()方式字符串赋值,因为时间等类型不会自动转换。
  6. 相比较而言,使用NPOI方式不需要服务器安装office,不需要配置安全属性,但是,个人还是更加喜欢用Office组件,因为更加完善。

参考

demo
             bool ifSuccess = false ;
            string msg = "" ;
            string templatePath = Server.MapPath("\\Content\\template\\temp.xlsx" );
            string resultPath = "" ;
            try
            {
                resultPath = "\\Content\\template\\" + lCode + "_" + DateTime.Now.Second + ".xlsx";
                string savePath = Server.MapPath(resultPath);
                IWorkbook exportFile = new XSSFWorkbook(templatePath);

                ISheet sheet1 = exportFile.GetSheet("SheetName" );
                //int x = 1;
                //for (int i = 1; i <= 15; i++)
                //{
                //    IRow row = sheet1.CreateRow(i);
                //    for (int j = 0; j < 15; j++)
                //    {
                //        row.CreateCell(j).SetCellValue((x++).ToString());
                //    }
                //}
                IRow row = sheet1.CreateRow(3);
                row.CreateCell(0).SetCellValue("123");
                sheet1.GetRow(1).GetCell(1).SetCellValue(DateTime.Now.ToString());
                FileStream sw = System.IO.File .Create(savePath);
                exportFile.Write(sw);
                sw.Close();
                ifSuccess = true;
            }
            catch (Exception e)
            {
                msg = e.Message;
                if (e.InnerException != null )
                    msg += e.InnerException.Message;
            }


相关文章推荐

NPOI读写Excel (使用NPOI2.0 包含03和07版本)

NPOI 2.0将OOXML的代码放在了单独的DLL中,使用前请确保引用了以下DLL NPOI.dll NPOI.OOXML.dll NPOI.OpenXml4Net.dll ...

Delphi7高级应用开发随书源码

  • 2003年04月30日 00:00
  • 676KB
  • 下载

Delphi7高级应用开发随书源码

  • 2003年04月30日 00:00
  • 676KB
  • 下载

使用NPOI完全脱离excel的导出二,批量数据导出性能优化。

使用完全脱离excel的导出中的方法导出excel,使用了一段时间后,发现问题不少,尤其是数据量特别大的时候,例如上万的数据,经常需要好几分钟。于是自己就开始进行优化。经过观察代码,发现能优化的地方。...

C# NPOI2.1.3 版本数据导入导出到excel

using NPOI.HSSF.UserModel;using System;using System.Collections.Generic;using System.Data;using Syst...

(转载)NPOI使用手册,实践发现使用2.2版本的库需要稍作调整

NPOI使用手册 目录 1.认识NPOI   2. 使用NPOI生成xls文件 2.1 创建基本内容 2.1.1创建Workbook和Sheet 2.1....

在C#中使用NPOI2.0操作Excel2003和Excel2007

在C#中使用NPOI2.0操作Excel2003和Excel2007 Excel2003: #region Excel2003 /// /// 将Excel文件中的数据读出到...
  • halym
  • halym
  • 2013年07月03日 17:34
  • 24590

Npoi导出excel整理(附源码)

http://www.cnblogs.com/WikStone/archive/2013/01/12/2857466.html 前些日子做了一个简单的winform程序,需要导出的功能,刚开...

C# 导出到Excel(NPOI的使用)

最近研究下用C#导出Excel。最后选择要用NPOI来导出。在网上看到了好多的教程啊。于是我兴奋的模仿起来了。先创建个空的excel试试吧。结果:提示无法将类型“NPOI.SS.UserModel.S...
  • jxqvip
  • jxqvip
  • 2011年06月21日 09:32
  • 9233

Delphi7高级应用开发随书源码

  • 2003年04月30日 00:00
  • 676KB
  • 下载
内容举报
返回顶部
收藏助手
不良信息举报
您举报文章:关于使用NPOI2.0 进行Excel导出的一些笔记
举报原因:
原因补充:

(最多只允许输入30个字)