Apache POI中的多个超链接

是否可以在一个Excel表单中多次使用相同的超链接?

Hyperlink link = createHelper.createHyperlink(Hyperlink.LINK_URL); link.setAddress("http://poi.apache.org/"); 

我已经使用上面的代码来创build超链接和下面的代码来生成excel工作表的行和列。

  Row title = null; Cell reportNames = null; /* I am processing some queries here */ while(rs.next()){ title = sheet.createRow(idx); reportNames = title.createCell(0); reportNames.setCellValue(rs.getString(1)); reportNames.setHyperlink(link); idx++; sheet.autoSizeColumn(0); } } 

我的问题是超链接显示/只适用于最后一行的内容。 我的意思是,只有最后一行是可点击的,并且正确地将我redirect到哪里,而其他人没有设置为超链接? 是否有限制,只有一个超链接指向相同的url? 还是我做错了什么?

每次要创build超链接单元格时,都必须创build一个新的超链接对象。 当您调用Cell对象上的setHyperlink时,它会为超链接设置对自身的引用。 以下是org.apache.poi.xssf.usermodel.XSSFCell类的摘录(版本3.9中的第913-921行):

 public void setHyperlink(Hyperlink hyperlink) { XSSFHyperlink link = (XSSFHyperlink)hyperlink; // Assign to us link.setCellReference( new CellReference(_row.getRowNum(), _cellNum).formatAsString() ); // Add to the lists getSheet().addHyperlink(link); } 

通过查看link.setCellReference(...方法调用。