Java - Excel 向内容添加超链接

  • 问题描述

    如何使用 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 {
          //Create a Workbook
          XSSFWorkbook workbook = new XSSFWorkbook();
          //Create a Spread Sheet
          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 Link
          cell = spreadsheet.createRow(1).createCell((short) 1);
          cell.setCellValue("URL Link");
          XSSFHyperlink link =
             (XSSFHyperlink)createHelper.createHyperlink(Hyperlink.LINK_URL);
          
          link.setAddress("http://www.cainiaoya.com/" );
          cell.setHyperlink((XSSFHyperlink) link);
          cell.setCellStyle(hlinkstyle);
          //Hyperlink to a file in the current directory
          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);
          //e-mail link
          cell = spreadsheet.createRow(3).createCell((short) 1);
          cell.setCellValue("Email Link");
          
          link = (XSSFHyperlink)createHelper.createHyperlink(Hyperlink.LINK_EMAIL);
          link.setAddress("mailto:contact@cainiaoya.com?subject=Hyperlink");
          
          cell.setHyperlink(link);
          cell.setCellStyle(hlinkstyle);
          FileOutputStream out = new FileOutputStream(
             new File("C:/poiexcel/addHyperlink.xlsx"));
          //Writing the content
          workbook.write(out);
          out.close();
          System.out.println("hyperlink.xlsx written successfully");
       }
    }
    
  • 输出

    Excel 超链接