2007年7月25日星期三

POI-HSSF使用技巧之(一) 生成超链接。

今天接到一个需求, 要求报表生成的Excel表格支持超链接。例如点击Excel内的公司名, 自动打开浏览器并连到该公司的网站上去。在Excel里面选中所需的单元格, 右键弹出属性, 选超链接就能输入相应的地址了,既然Excel支持超链接。那就没有什么借口说不能实现了。:).

翻了翻POI的文档, 很容易就找到了解决方案。在POI中让单元格实现超链接功能, 可以用Hyperlink 函数。HYPERLINK函数包含两个参数,第一个参数是指向的URL地址,第二个参数是显示字串

cell = row.createCell(colNumber)。
cell.setCellType(HSSFCell.CELL_TYPE_FORMULA);
cell.setCellFormula("HYPERLINK(\"" + "Http://www.google.ca"+ "\",\"" + "Google Canada"+ "\")");

现在超链接单元格看起来和一般的单元格没有分别, 除非你把鼠标放上去才会变成手行光标。 为了和一般的习惯相符, 还需要把字符颜色变成蓝色和加上下划线。 这就要用到 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);

看上去是不是不错呢。细心的朋友可能发现一个小缺陷, 就是Excel的列宽不会自动调整,导致只看到部分字符, 稍后我会给你一个解决的方案。

1 条评论:

匿名 说...

vacancies antibody black slee constancy preclear fdlp entree collaborate realize probe
semelokertes marchimundui