如何使用 Java 向单元格内容添加超链接

问题描述

如何使用 Java 向单元格内容添加超链接。

解决方案

以下是使用 Java 向单元格内容添加超链接的程序。

import java.io.File;
import java.io.FileOutputStream;

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.XSSFSheet;
import org.apache.poi.xssf.usermodel.XSSFWorkbook;

public class AddHyperlinkToCell {
   public static void main(String[] args) throws Exception {

         //创建工作簿
        XSSFWorkbook workbook = new XSSFWorkbook();
        
        //创建电子表格
        XSSFSheet spreadsheet = workbook.createSheet("Hyperlinks");
        XSSFCell cell;
        
        CreationHelper createHelper = workbook.getCreationHelper();
        XSSFCellStyle hlinkstyle = workbook.createCellStyle();
        XSSFFont hlinkfont = workbook.createFont();
        
        hlinkfont.setUnderline(XSSFFont.U_SINGLE);
        hlinkfont.setColor(HSSFColor.BLUE.index);
        hlinkstyle.setFont(hlinkfont);
        
        //URL 链接
        cell = spreadsheet.createRow(1).createCell((short) 1);
        cell.setCellValue("URL Link");
        XSSFHyperlink link =
        (XSSFHyperlink)createHelper.createHyperlink(Hyperlink.LINK_URL);
        
        link.setAddress("http://www.tutorialspoint.com/" );
        cell.setHyperlink((XSSFHyperlink) link);
        cell.setCellStyle(hlinkstyle);
        
        //超链接到当前目录中的文件
        cell = spreadsheet.createRow(2).createCell((short) 1);
        cell.setCellValue("File Link");
        
        link = (XSSFHyperlink)createHelper.createHyperlink(Hyperlink.LINK_FILE);
        link.setAddress("cellstyle.xlsx");
        
        cell.setHyperlink(link);
        cell.setCellStyle(hlinkstyle);
        
        //电子邮件链接
        cell = spreadsheet.createRow(3).createCell((short) 1);
         cell.setCellValue("Email Link");
        
        link = (XSSFHyperlink)createHelper.createHyperlink(Hyperlink.LINK_EMAIL);
        link.setAddress("mailto:contact@tutorialspoint.com?subject=Hyperlink");
        
        cell.setHyperlink(link);
        cell.setCellStyle(hlinkstyle);
        FileOutputStream out = new FileOutputStream(
        new File("C:/poiexcel/addHyperlink.xlsx"));
        
        //写入内容
      	workbook.write(out);
      	out.close();
      	System.out.println("hyperlink.xlsx written successfully");
   }
}

输出

Excel 超链接
java_apache_poi_excel.html