npoi 删除多行 操作excel_NPOI操作EXCEL 【只争朝夕】

2. 5个DLL全部添加到程序的引用中

a8d7af7ec8580f2adbff6e4ab13c8c74.png

3. NPOI里面的管理层次为:workbook->worksheet->row->cell. 这些对象全部都是内存对象。

4. 具体操作,网上有许多,需要注意的是

--读取时,workbook是从FileStream中生成的,

FileStream fs = new FileStream(tbNewVer.Text, FileMode.Open, FileAccess.Read)

XSSFWorkbook wbnew = new XSSFWorkbook(fs);

奇怪的是,fs被用过之后就不能再用了,好像workbook在用它初始化之后就把它释放了。

--保存时,也需要借助一个FileStream对象将workbook中的内容写入具体的文件。而workbook并没有Save之类的功能,没找到

MemoryStream stream = new MemoryStream();

wbres.Write(stream);

var buf = stream.ToArray();

FileStream resfile = new FileStream(NEW_FILE_NAME, FileMode.Create, FileAccess.Write);

resfile.Write(buf, 0, buf.Length);

resfile.Flush();

但我看有的教程中写得比较简洁,无需借助MemoryStream:

file = new FileStream(filepath, FileMode.Open, FileAccess.Write);

wb.Write(file);

file.Close();

wb.Close()

我用这个写法做,生成的文件总是打不开,显示是文件损坏。

d589a9cdf49d490712a5a1f280246c81.png

后来发现:凡是直接NOIP生成的文件,可以用两种方法操作,都没有问题

但是用我电脑上的EXCEL程序编辑过的文件,不管用哪种方法修改,EXCEL程序打开文件时就会出错。

不知道怎么回事。

--sheet.CreateRow之后并不会创建Row中的Cell,Cell还是需要一个个创建才能用

-- irow.GetCell与irow.Cells基本一样,但是当col超出引用范围时,Cells索引器会异常,而GetCell返回null

IRow irow=sheet.GetRow(osm.xlRow);

ICell srccell=irow.GetCell(col);

ICell srccell=irow.Cells[col];

-- 因为全部是在内存中操作,速度还是很快的。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值