java利用poi包 為excel生成超鏈接


轉載自:http://www.blogjava.net/leekiang/archive/2008/10/21/235794.html

 
1,
一個需求, 要求報表生成的Excel表格支持超鏈接。例如點擊Excel內的公司名, 自動打開瀏覽器並連到該公司的網站上去。在Excel里面選中所需的單元格, 右鍵彈出屬性, 選超鏈接就能輸入相應的地址了,既然Excel支持超鏈接。那就沒有什么借口說不能實現了。:).

翻了翻POI的文檔, 很容易就找到了解決方案。在POI中讓單元格實現超鏈接功能, 可以用Hyperlink 函數。HYPERLINK函數包含兩個參數, 第一個參數是指向的地址,第二個參數是顯示的字符串

cell = row.createCell(colNumber)。
cell.setCellType(HSSFCell.CELL_TYPE_FORMULA);
cell.setCellFormula("HYPERLINK(\"" + "Http://www.google.ca"+ "\",\"" + "Google Canada"+ "\")");
或cell.setCellFormula("HYPERLINK(\"[workbook.xls]'sheet2'!A1\",\"homepage\")"); //HYPERLINK("#明細!A1","homepage"),#代表本工作簿,來源http://club.excelhome.net/thread-54081-1-1.html

現在超鏈接單元格看起來和一般的單元格沒有分別, 除非你把鼠標放上去才會變成手行光標。 為了和一般的習慣相符, 還需要把字符顏色變成藍色和加上下划線。 這就要用到 style了、

HSSFCellStyle linkStyle = workbook.createCellStyle();
HSSFFont cellFont= workbook.createFont();
cellFont.setUnderline((byte) 1);
cellFont.setColor(HSSFColor.BLUE.index);
linkStyle.setFont(cellFont);

最后把style應用到cell上去就大功告成了。
cell.setCellStyle(linkStyle);

以上修改自http://sunnylei2008.blogspot.com/2007/07/poihssf.html
和http://diystyle.javaeye.com/blog/132093
還有http://blog.csdn.net/xunyiren/archive/2007/03/08/1524533.aspx


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM