使用 npoi 操作excel ”npoi“可从“http://www.codeplex.com/npoi”下载

之前操作excel的时候,用过vba;在.net直接操作过单元格;用过oledb的方式操作。今天晚上发现了 npoi这个开源的类库,先从别人那拿一份简介:http://www.cnblogs.com/bestchen_1/articles/1700664.html。

我简单写了几行C#代码测试一下:

FileStream fs = new FileStream(@"C:/Documents and Settings/Administrator/桌面/test_data.xls", FileMode.OpenOrCreate); HSSFWorkbook hssfworkbook = new HSSFWorkbook(fs, false); HSSFSheet sheet1 = hssfworkbook.GetSheet("blank"); sheet1.CreateRow(0).CreateCell(0).SetCellValue("This is a Sample"); int x=1; for (int i = 1; i <= 15; i++) { HSSFRow row=sheet1.CreateRow(i); for (int j = 0; j < 15; j++) { row.CreateCell(j).SetCellValue(x++); } } fs.Close(); Console.WriteLine("处理完成........."); Console.ReadLine();

代码执行了,但没有起作用。今儿就到这吧,明天结blog,明儿五点半就得起床....

接着昨天的继续写,代码改成如下:

Stopwatch sw = new Stopwatch(); sw.Start(); FileStream fs = new FileStream(@"C:/Documents and Settings/Administrator/桌面/test_data.xls", FileMode.OpenOrCreate); HSSFWorkbook hssfworkbook = new HSSFWorkbook(fs, false); HSSFSheet sheet1 = hssfworkbook.GetSheet("blank"); sheet1.CreateRow(0).CreateCell(0).SetCellValue("This is a Sample"); int x = 1; for (int i = 1; i <=65535; i++) { HSSFRow row = sheet1.CreateRow(i); for (int j = 0; j < 15; j++) { row.CreateCell(j).SetCellValue(x++); } } MemoryStream file = new MemoryStream(); hssfworkbook.Write(file); fs.Close(); FileStream fStream = new FileStream(@"C:/Documents and Settings/Administrator/桌面/test_data.xls", FileMode.OpenOrCreate); fStream.Write(file.GetBuffer(), 0, file.GetBuffer().Length); fStream.Close(); sw.Stop(); Console.WriteLine("处理完成........."); Console.WriteLine("编辑65535条记录用时:" + sw.Elapsed.ToString()); Console.ReadLine();

我做了简要的测试,在excel2003里插入65535行记录大约耗时42秒,我个人认为性能蛮好的,导出数据的代码到蛮好上手的,但个人觉得编辑excel的时候不是很好使(现成的方法比较少),总体还是比较喜欢这个东东的,期待着它继续发展完善。

2010-06-07续写:

对于 HSSFSheet sheet1 = hssfworkbook.GetSheet("blank");获得到的一张sheet表如果是空表的话,则sheet1.LastRowNum为零,即使sheet1.getRow(0)的返回结果也是null,这点和我们看到的excel肯能不是很对应,需要进行

HSSFRow row = sheet1.CreateRow(index);
row.CreateCell(j).SetCellValue(“value”);

创建了相应的单元格之后便可以操作了。


评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值