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

📅  最后修改于: 2022-05-13 01:54:34.998000             🧑  作者: Mango

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

使用Java和 Apache POI 添加指向单元格内容的超链接。 Apache POI 是一个Java库,用于处理 Microsoft Office 文档。

安装:

在我们的Java项目中安装Apache POI依赖有两种方式:

  1. 从 poi.apache.org/download.html 下载下面提到的 Jar 文件:
    • poi-3.17.jar
    • poi-ooxml-3.17.jar
    • commons-codec-1.10.jar
    • poi-ooxml-schemas-3.17.jar
    • xml-apis-1.0.b2.jar
    • stax-api-1.0.1.jar
    • xmlbeans-2.6.0.jar
    • dom4j-1.6.1.jar
  2. Maven依赖:在maven项目中设置如下依赖为:
  
        org.apache.poi  
        poi  
        3.9  
    

环境设置:

  • 使用Java maven 创建一个项目。
  • 转到 poi.apache.org/download.html 并将依赖项添加到您的项目中。这样,库就会导入到您的项目中。
  • 现在,在 Source Packages 中的 com.mycompany. 下创建一个Java类。
  • 很好,现在您可以使用这些库了。

方法:

  • 创建工作簿。
  • 在工作簿中创建电子表格。
  • 创建一个单元格并为其添加颜色、内容和样式。
  • 添加地址并为其应用链接颜色。
  • 在电子表格中添加单元格。
  • 重复步骤 3 到 5 写入更多数据

下面是上述方法的实现:

Java
// How to add hyperlink to the
// contents of a cell using 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 HyperLink {
    public static void addLink()
    {
        // Create a Workbook
        XSSFWorkbook myWorkbook = new XSSFWorkbook();
  
        // Create a Spread Sheet
        XSSFSheet newSpreadsheet
            = myWorkbook.createSheet("Custom Links");
        XSSFCell cell;
  
        // Create Helpers
        CreationHelper helper
            = myWorkbook.getCreationHelper();
        XSSFCellStyle linkStyle
            = myWorkbook.createCellStyle();
        XSSFFont linkFont = myWorkbook.createFont();
  
        // Setting the Link Style
        linkFont.setUnderline(XSSFFont.U_SINGLE);
        linkFont.setColor(HSSFColor.BLUE.index);
        linkStyle.setFont(linkFont);
  
        // Adding a Link
        cell = newSpreadsheet.createRow(1).createCell(
            (short)2);
        cell.setCellValue("Link");
        XSSFHyperlink link
            = (XSSFHyperlink)helper.createHyperlink(
                Hyperlink.LINK_URL);
  
        link.setAddress("http://www.geeksforgeeks.com/");
        cell.setHyperlink((XSSFHyperlink)link);
        cell.setCellStyle(linkStyle);
  
        // Writing the File
        FileOutputStream output = new FileOutputStream(
            new File("C:/HyperLink.xlsx"));
  
        // Writing the content
        myWorkbook.write(output);
        output.close();
    }
    public static void main(String[] args) throws Exception
    {
        addLink();
    }
}


输出: