簡體   English   中英

Apache POI中的多個超鏈接

[英]Multiple Hyperlinks in Apache POI

是否可以在單個Excel工作表中多次使用相同的超鏈接?

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

我已經使用上面的代碼創建了超鏈接和以下代碼來生成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);

          }
        }

我的問題是超鏈接顯示/僅適用於最后一行的內容。 我的意思是,只有最后一行是可點擊的,它會正確地重定向到哪里,而其他行沒有設置為超鏈接? 是否有任何限制,只有一個超鏈接指向同一個網址? 或者我做錯了什么?

每次要創建超鏈接單元格時,都必須創建新的超鏈接對象。 在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(...方法調用)可以看出這一點。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM