使用NPOI将单元格的超链接复制到另一个单元格

我试图从一个表格复制某些数据到另一个,但有些单元格是简单的string,有些是超链接。 如果我在string上使用StringCellValue,那没关系,但是我还没有find一种方法将超链接从原始表单复制到我正在构build的新表单中。

为了构build新的表格和数据复制,我正在使用NPOI。

//更新我已经添加了代码来插入超链接,但是当我运行该程序时,它显示以下exception:对象引用未设置为对象的实例。

这是我的代码:

using (FileStream fs = new FileStream(@"C:\Users\File.xlsx", FileMode.Open, FileAccess.Read, FileShare.ReadWrite)) { Console.WriteLine("Time to wait...."); templateWorkbook = new XSSFWorkbook(fs); } row.GetCell(6).SetCellValue(sheettoget.GetRow(1).GetCell(13).StringCellValue); var sourceLink = sheettoget.GetRow(1).GetCell(13).Hyperlink; if(sourceLink != null) { Console.WriteLine("Inserting first Juice session..."); var targetLink = new XSSFHyperlink(sourceLink.Type); targetLink.Address = sourceLink.Address; } row.GetCell(6).Hyperlink = targetLink; row.GetCell(6).CellStyle = sheettoget.GetRow(1).GetCell(13).CellStyle; 

您可以像这样复制超链接,其中sourceCell是您要复制的单元格,而targetCell是要复制到的单元格:

  targetCell.SetCellValue(sourceCell.StringCellValue); var sourceLink = sourceCell.Hyperlink; if (sourceLink != null) { var targetLink = new XSSFHyperlink(sourceLink.Type); targetLink.Address = sourceLink.Address; targetCell.Hyperlink = targetLink; // also copy the cell style to ensure the copied link still looks like a link targetCell.CellStyle = sourceCell.CellStyle; }