NPOI 操作excel实现多行数据复制功能
NPOI 复制多行到其他worksheet中
目前NPOI最新版为Version 2.5.6,需要实现sheet1中的多行数据,复制到sheet2中,目前NPOI未提供直接的函数,寻找多种资源,终于在Stack overflow上找到该问题的解决办法,并对其进行优化,得到如下代码!
转载请注明出处!
优化内容
优化主要包括:
- 增加复制内容中合并单元格处理,即MergeRegion()函数
参考链接,可直接点击:
1.指定行列复制
2.stackoverflow,NPOI 复制范围到另一个工作表
3.中文博客,翻译stackoverflow
/// <summary>
/// 复制选定的区域到指定的sheet,用法举例: sheet1中"A1:H47"到sheet2中,则CopyRange("A1:H47",sheet1,sheet2)
/// </summary>
/// <param name="str_range"></param>
/// <param name="sourceSheetname"></param>
/// <param name="destinationSheetName"></param>
public void CopyRange(CellRangeAddress range, string sourceSheetname, string destinationSheetName)
{
// CellRangeAddress range = CellRangeAddress.ValueOf(str_range);
ISheet sourceSheet = Wb.GetSheet(sourceSheetname);
ISheet destinationSheet = Wb.GetSheet(destinationSheetName);
if(destinationSheet==null)
{
destinationSheet = Wb.CreateSheet(destinationSheetName);
}
for (var rowNum = range.FirstRow; rowNum <= range.LastRow; rowNum+