首页 诗词 字典 板报 句子 名言 友答 励志 学校 网站地图
当前位置: 首页 > 教程频道 > 网站开发 > asp.net >

求NPOI完整的使用方法,该怎么解决

2012-04-02 
求NPOI完整的使用方法谁给个能运行的NPOI完整代码?需要引用什么,下载什么都说明一下吧!!!就是运行网页后,

求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>        /// 对单元格区域赋值        /// </summary>        /// <param name="p_startRowIndex">起始行号,从1开始</param>        /// <param name="p_endRowIndex">结束行号,从1开始</param>        /// <param name="p_startColChars">起始列名,从A开始</param>        /// <param name="p_endColChars">结束列名,从A开始</param>        /// <param name="p_Values"></param>        public void SetValue(int p_startRowIndex, int p_endRowIndex, string p_startColChars, string p_endColChars, Array p_Values)        {            SetValue(p_startRowIndex, p_endRowIndex, ExcelColumnTranslator.ToIndex(p_startColChars), ExcelColumnTranslator.ToIndex(p_endColChars), p_Values);        }        /// <summary>        /// 对单元格区域赋值        /// </summary>        /// <param name="p_startRowIndex">起始行号,从1开始</param>        /// <param name="p_endRowIndex">结束行号,从1开始</param>        /// <param name="p_startColIndex">起始列号,从1开始</param>        /// <param name="p_endColIndex">结束列号,从1开始</param>        /// <param name="p_Values"></param>        public void SetValue(int p_startRowIndex, int p_endRowIndex, int p_startColIndex, int p_endColIndex, Array p_Values)        {            //遍历行与列            int index1 = 0;            int index2 = 0;            for (int rowIndex = p_startRowIndex; rowIndex <= p_endRowIndex; rowIndex++)            {                index2 = 0;                for (int colIndex = p_startColIndex; colIndex <= p_endColIndex; colIndex++)                {                    SetValue(rowIndex, colIndex, p_Values.GetValue(index1, index2).ToString());                    index2++;                }                index1++;            }        }        /// <summary>        /// 对单元格赋值        /// </summary>        /// <param name="p_ColumnIndex">行号,从1开始</param>        /// <param name="p_RowIndex">列号,从1开始</param>        /// <param name="p_Value">期望值,从1开始</param>        public void SetValue(int p_RowIndex, int p_ColumnIndex, string p_Value)        {            try            {                _sheet.GetRow(p_RowIndex - 1).GetCell(p_ColumnIndex - 1).SetCellValue(p_Value);            }            catch (Exception e)            {            }        } 


[解决办法]
这个要看你用的是什么版本了!NPOI现在的版本已经升级了,现在只有两个DLL,Ionic.Zip.dll和NPOI.dll,

至于你的错误 ,应该是这样定义 
Sheet sheet1 = hssfworkbook.CreateSheet("Sheet1");
 sheet1.CreateRow(0).CreateCell(0).SetCellValue("This is a Sample");
[解决办法]

探讨
。。。。。。。。。代码弄好了,运行没错了,点击按钮。。。没任何反应。。

NPOI生成excel是怎么生成的呢???

protected void WriteToFile()
{
//Write the stream data of workbook to the root directory
FileStream file = new FileStream(@"tes……

热点排行