日期:2014-05-18  浏览次数:20512 次

求NPOI完整的使用方法
谁给个能运行的NPOI完整代码?需要引用什么,下载什么都说明一下吧!!!
就是运行网页后,按一下按钮就能生成的一个测试的excel(excel带格式的)。

http://blog.csdn.net/tonyqus/archive/2009/11/29/4898453.aspx

上面网页是很多人都推荐去看的,我看过了,代码我用不了,不知道什么原因,网上也搜不到解决办法,我列出下我运行出现的错误吧!!我是用了Tony Qu 3.3 用NPOI操作EXCEL--生成一张工资单 的例子。

CS0266: 无法将类型“NPOI.SS.UserModel.Sheet”隐式转换为“NPOI.HSSF.UserModel.HSSFSheet”。存在一个显式转换(是否缺少强制转换?)
行 38: HSSFSheet sheet1 = hssfworkbook.CreateSheet("Sheet1");

这个在=后面加个(HSSFSheet)强制转化可以解决,但后面很多都要加,什么row,cell啊这些!!

CS0246: 找不到类型或命名空间名称“Region”(是否缺少 using 指令或程序集引用?)
行 51: sheet1.AddMergedRegion(new Region(0, 0, 1, 6));

CS0117: “NPOI.HSSF.UserModel.HSSFCell”并不包含“SetCellFormula”的定义
行 116: cell.SetCellFormula(String.Format("$B{0}*0.08", rowIndex + 2));


麻烦大家了,真的不知道怎么解决,网上搜也搜不到解决办法。我是VS2005,npoi是这个:NPOI 1.2.3 final binary 在官网下的!!

谁给个全面点的例子我,好让我自己修改成我需要的!!!!谢谢了!!!

------解决方案--------------------
是不是你的环境跟博主的环境部一样。。

你看看下面的评论

查看是否引用

using NPOI;
using NPOI.HPSF;
using NPOI.HSSF;
using NPOI.HSSF.UserModel;
using NPOI.HSSF.Util;
using NPOI.POIFS;
using NPOI.Util; 

那个系统应该能跑。。你的是WIN7?

还有检查你的NPOI的版本

感觉转换问题应该是NPOI的版本问题

第二个问题是没有using.
------解决方案--------------------
网页上有的只是源码,需要自己写,自己封装,我虽然有个类,但是属于公司资产我不方便给你
NPOI的类库就那些,你好好看看,发些代码给你看看
C# code

 public class ExcelReporting
    {
        private HSSFWorkbook _workbook;
        private HSSFSheet _sheet;

        //private string formCaption;

        ///// <summary>
        ///// 打印预览时的窗口标题
        ///// </summary>
        //public string FormCaption
        //{
        //    get { return formCaption; }
        //    set { formCaption = value; }
        //}

        private string templateFileName;

        /// <summary>
        /// 模板文件的完整文件名
        /// </summary>
        public string TemplateFileName
        {
            get { return templateFileName; }
            set { templateFileName = value; }
        }

        private string fileName;
        /// <summary>
        /// Excel文件保存在该路径的文件
        /// </summary>
        public string FileName
        {
            get { return fileName; }
            set { fileName = value; }
        }


        /// <summary>
        /// 构造函数,默认操作第一个Sheet表
        /// </summary>
        /// <param name="p_FileName"></param>
        public ExcelReporting(string p_FileName)
        {
            FileName = "";
            this.TemplateFileName = p_FileName;
            //删除临时文件
            DeleteTempplate(p_FileName);
            //打开Excel文件流并将内容放到HSSFWorkbook对象。
            using (FileStream file = new FileStream(p_FileName, FileMode.Open, FileAccess.Read))
            {
                _workbook = new HSSFWorkbook(file);
            }
            //设置当前操作的Sheet,默认为第一个,这样就可以操作多个。
            _sheet = _workbook.GetSheetAt(0);
        }

        /// <summary>
        /// 构造函数,默认操作第一个Sheet表
        /// Add by hhd at 20101115
        /// </summary>
        /// <param name="p_FileName"></param>
        public ExcelReporting(string p_FileName, int index)
        {
            FileName = "";
            this.TemplateFileName = p_FileName;
            //删除临时文件
            DeleteTempplate(p_FileName);
            //打开Excel文件流并将内容放到HSSFWorkbook对象。
            using (FileStream file = new FileStream(p_FileName, FileMode.Open, FileAccess.Read))
            {
                _workbook = new HSSFWorkbook(file);
            }
            //设置当前操作的Sheet,默认为第一个,这样就可以操作多个。
            _sheet = _workbook.GetSheetAt(index);
        }


        /// <summary&