POI给单元格添加超链接(xls,xlsx)

Posted on   jiaoqing。  阅读(743)  评论(0编辑  收藏  举报
复制代码
package com.topcheer.html;

import java.io.FileOutputStream;
import java.io.IOException;

import org.apache.poi.common.usermodel.Hyperlink;
import org.apache.poi.hssf.util.HSSFColor;
import org.apache.poi.ss.usermodel.CreationHelper;
import org.apache.poi.xssf.usermodel.XSSFCell;
import org.apache.poi.xssf.usermodel.XSSFCellStyle;
import org.apache.poi.xssf.usermodel.XSSFFont;
import org.apache.poi.xssf.usermodel.XSSFHyperlink;
import org.apache.poi.xssf.usermodel.XSSFRow;
import org.apache.poi.xssf.usermodel.XSSFSheet;
import org.apache.poi.xssf.usermodel.XSSFWorkbook;

public class Test2 {
    public static void main(String[] args) throws IOException {  
        /* !使用POI版本:3.10-FINAL*/  
          
        /* 建立新HSSFWorkbook对象*/  
        XSSFWorkbook workbook = new XSSFWorkbook();
          
        XSSFSheet createSheet = workbook.createSheet("汇总页面");  
        XSSFRow row = createSheet.createRow((short)0);  
          
        /* 连接跳转*/  
        XSSFCell likeCell = row.createCell((short)0);     
      //  XSSFHyperlink link = new XSSFHyperlink(XSSFHyperlink.LINK_URL);// 无法实例化XSSFHyperlink对象
        CreationHelper createHelper = workbook.getCreationHelper();
        XSSFHyperlink  hyperlink = (XSSFHyperlink) createHelper.createHyperlink(Hyperlink.LINK_DOCUMENT);
        // "#"表示本文档    "明细页面"表示sheet页名称  "A10"表示第几列第几行  
        hyperlink.setAddress("#明细页面!A10");  
        likeCell.setHyperlink(hyperlink);  
        // 点击进行跳转  
        likeCell.setCellValue("1");  
          
        /* 设置为超链接的样式*/  
        XSSFCellStyle linkStyle = workbook.createCellStyle();
        XSSFFont cellFont = workbook.createFont();
        cellFont.setUnderline((byte) 1);  
        cellFont.setColor(HSSFColor.BLUE.index);  
        linkStyle.setFont(cellFont);  
        likeCell.setCellStyle(linkStyle);  
          
        /* 建立第二个sheet对象*/  
        XSSFSheet sheet2 = workbook.createSheet("明细页面");  //建立新的sheet对象  
        for (int i = 0; i < 30; i++) {  
            XSSFRow row2 = sheet2.createRow((short)i);  
            XSSFCell cell2 = row2.createCell((short)0);  
            cell2.setCellValue("测试第"+(i+1)+"");  
        }  
          
        /* 输出文件*/  
        FileOutputStream fileOut = new FileOutputStream("D:\\汇总和明细.xlsx");  
        workbook.write(fileOut);  
        fileOut.close();  
    }  

}
复制代码


原文链接:https://blog.csdn.net/qq_29860591/article/details/105063139

可参考:https://blog.csdn.net/sanpangouba/article/details/78855214

相关博文:
阅读排行:
· TypeScript + Deepseek 打造卜卦网站:技术与玄学的结合
· Manus的开源复刻OpenManus初探
· .NET Core 中如何实现缓存的预热?
· 三行代码完成国际化适配,妙~啊~
· 阿里巴巴 QwQ-32B真的超越了 DeepSeek R-1吗?
历史上的今天:
2021-08-09 vue项目中 页面生成pdf并下载,vue 中页面转PDF

随笔 - 287, 文章 - 0, 评论 - 3, 阅读 - 42万

Copyright © 2025 jiaoqing。
Powered by .NET 9.0 on Kubernetes

点击右上角即可分享
微信分享提示