NPOI的苦脑问题:单元格赋值老出错!!
using System.IO;
using NPOI.HSSF.UserModel;
protected void cmPrint_Click(object sender, EventArgs e)
{
System.IO.MemoryStream ms = new System.IO.MemoryStream();
HSSFWorkbook workbook = new HSSFWorkbook(new FileStream(Server.MapPath("test.xls"), FileMode.Open));
HSSFSheet sheet = (HSSFSheet)workbook.GetSheet("Sheet1");
//这行可以通过
sheet.GetRow(2).CreateCell(2).SetCellValue("这行可以通过");
//下面这行出错:
未将对象引用设置到对象的实例
sheet.GetRow(3).GetCell(3).SetCellValue("这行老出错");
}
错误提示:未将对象引用设置到对象的实例
奇怪了,我是打开已经存在的EXCEL文件,它已经设定好了格式,我只要填数就好了,为什么还会出错,是哪里少了什么呢?
Excel
------解决方案--------------------重新新建个文件试试
------解决方案--------------------不要盯着代码考虑,这种出错的可能性也有可能出在test.xls身上。
------解决方案--------------------sheet.GetRow(2).CreateCell(2).SetCellValue("这行可以通过");
sheet.GetRow(3).GetCell(2).SetCellValue("这行老出错");
这样试试?
------解决方案--------------------没有创建就引用?
------解决方案--------------------HSSFRow dataRow = sheet.CreateRow(3);
HSSFCell newCell = dataRow.CreateCell(3);
newCell.SetCellValue("应该没问题");
------解决方案--------------------if sheet.GetRow(3)!=null&&sheet.GetRow(3).GetCell(3)!=null
哈哈,项目急可以将就用一下,以后有时间再研究