java利用poi包 为excel生成超链接

一个需求, 要求报表生成的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

转载于:https://my.oschina.net/ferchen/blog/1540754

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
要在Java中使用POI生成Word文档中的超链接,你可以按照以下步骤进行操作: 1. 导入所需的POI库依赖。确保你的项目中含了POIPOI-OOXML的相关依赖。 2. 创建一个XWPFDocument对象,用于表示Word文档。 ```java XWPFDocument document = new XWPFDocument(); ``` 3. 创建一个XWPFParagraph对象,用于表示文档中的段落。 ```java XWPFParagraph paragraph = document.createParagraph(); ``` 4. 创建一个XWPFRun对象,用于表示段落中的文本。 ```java XWPFRun run = paragraph.createRun(); ``` 5. 使用XWPFRun对象的setText方法设置文本内容。 ```java run.setText("点击这里"); ``` 6. 使用XWPFRun对象的addBreak方法插入一个换行符。 ```java run.addBreak(); ``` 7. 使用XWPFRun对象的addHyperlink方法添加超链接。 ```java String url = "https://www.example.com"; run.addHyperlink(url, "链接文本"); ``` 注意:POI库需要在文本中使用Unicode码来表示链接文本,所以确保你的文本是基于Unicode编码的。 8. 保存生成的Word文档。 ```java FileOutputStream out = new FileOutputStream("output.docx"); document.write(out); out.close(); ``` 完整的示例代码如下: ```java import org.apache.poi.xwpf.usermodel.*; import java.io.FileOutputStream; import java.io.IOException; public class WordHyperlinkExample { public static void main(String[] args) throws IOException { XWPFDocument document = new XWPFDocument(); XWPFParagraph paragraph = document.createParagraph(); XWPFRun run = paragraph.createRun(); run.setText("点击这里"); run.addBreak(); String url = "https://www.example.com"; run.addHyperlink(url, "链接文本"); FileOutputStream out = new FileOutputStream("output.docx"); document.write(out); out.close(); } } ``` 运行代码后,你将在项目根目录下生成一个名为output.docx的Word文档,其中含了一个超链接。你可以将URL和链接文本替换为你所需的内容。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值