gpt4 book ai didi

C# NPOI Excel 工具不删除行?

转载 作者:太空宇宙 更新时间:2023-11-03 19:58:25 24 4
gpt4 key购买 nike

我正在开发一个应用程序,该应用程序应该从文件末尾读取一行,对其进行处理,然后删除该行并更新文件。

我正在使用 NPOI 库,但它不起作用。为了避免错误数据(空单元格)进入,我运行以下检查:

IWorkbook WB;
ISheet WS;
ICell cell;
using ( FileStream FS = new FileStream( p, FileMode.Open, FileAccess.Read ) ) {
if ( Path.GetExtension( p ).ToLower( ).Equals( "xls" ) )
WB = new HSSFWorkbook( FS );
else
WB = new XSSFWorkbook( FS );
}
WS = WB.GetSheetAt( 0 );
cell = WS.GetRow( WS.LastRowNum ).GetCell( 0 );
if ( cell == null ) {
IRow row = WS.GetRow( WS.LastRowNum );
WS.RemoveRow( row );
using ( FileStream FS = new FileStream( p, FileMode.Create, FileAccess.Write ) )
WB.Write( FS );
DoFunc(args);
}

但是;这陷入了无限循环。我检查了代码,LastRowNum 属性没有变小。为什么这实际上并没有从工作表中删除最后一行?

有没有更好的方法来完成这个?

最佳答案

您可以使用 ISheet 中的 ShiftRows() 方法。如果您将所有行向上移动,从删除行后的下一行开始,它就可以解决问题。您还可以在此处查看讨论: https://npoi.codeplex.com/workitem/8411

var row = sheet.GetRow(indexToBeDeleted);
if (row != null)
{
sheet.RemoveRow(row);
sheet.ShiftRows(indexToBeDeleted + 1, sheet.LastRowNum, -1);
}

关于C# NPOI Excel 工具不删除行?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/31020324/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com