📜  如何使用Java在电子表格中创建超链接?

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

如何使用Java在电子表格中创建超链接?

Apache POI 是一种流行的 API,允许程序员使用Java程序创建、修改和显示 MS Office 文件。它是由 Apache Software Foundation 开发和分发的开源库,用于使用Java程序设计或修改 Microsoft Office 文件。它包含将用户输入数据或文件解码为 MS Office 文档的类和方法。

Apache POI 允许我们在电子表格中创建超链接。在单元格中设置网址并在单击时将其重定向到服务器很有用。

方法:

  • 导入所有必要的 .jar 文件,如 XSSF、XML,您还可以在 maven 项目中添加 Maven 依赖项,如下所示:
  
       org.apache.poi  
       poi  
       3.9  
   
  • 创建工作簿实例
  • 在上述工作簿中创建一个电子表格。
  • 使用 XSSFRow 创建行
  • 使用 XSSFCell 创建一个单元格。
  • 设置超链接以及单元格值。 ting 单元格值。
  • 通过定义 FileOutputStream 类型的对象将内容写入工作簿
  • 关闭文件的连接。

程序:

  1. 在 Eclipse 中创建一个 Maven 项目并添加 Apache POI(用于设置单元格的值类型)并导入所有必要的 .jar 文件,如 HSSF、XML。
  2. 为工作簿命名。
  3. 使用“new XSSFWorkbook()”创建一个工作簿,我们必须在其中创建电子表格。
  4. 使用“workbook.createSheet('Sheet1')”在工作簿中创建一个电子表格,并将工作表的名称命名为“Sheet1”
  5. 使用 XSSFRow 创建一行。行是基于 0 的。
  6. 使用 XSSFCell 创建一个单元格。
  7. 使用 cell.setCellFormula() 设置超链接,并使用 cell.setCellValue() 为单元格设置值;
  8. 将输出文件放在默认位置,并使用 FileOutputStream() 保存在 try-catch 块中。
  9. 使用 workbook.write() 将其写入在初始步骤中创建的工作簿;
  10. 关闭输出文件。
  11. 当程序成功执行时,在控制台窗口上显示消息。
  12. 当程序不成功时,在控制台窗口上显示错误消息,此语句保留在 catch 块中。

实现:让我们举个例子,在单元格中创建一个超链接,使用Java重定向到 geeksforgeeks 主页。

例子:

Java
// Java Program to Apply Hyperlink to a Cell
// in a Spreadsheet Using Apache POI
 
// Importing required classes
import java.io.*;
import java.io.FileNotFoundException;
import java.io.FileOutputStream;
import org.apache.poi.xssf.usermodel.XSSFCell;
import org.apache.poi.xssf.usermodel.XSSFRow;
import org.apache.poi.xssf.usermodel.XSSFSheet;
import org.apache.poi.xssf.usermodel.XSSFWorkbook;
 
// Main class
class GFG {
 
    // Main driver method
    public static void main(String[] args) throws Exception
    {
        // Name of WorkBook (custom input)
        String excelfilename = "GeeksForGeeks.xlsx";
 
        // Creating a WorkBook by
        // creating an object of XSSFWorkbook class
        XSSFWorkbook workbook = new XSSFWorkbook();
 
        // Creating a Spread Sheet by creating an object of
        // XSSFSheet and also give name
        XSSFSheet spreadsheet
            = workbook.createSheet("Sheet1");
 
        // Creating a row
        XSSFRow row = spreadsheet.createRow(1);
 
        // Creating a cell and put a cell index value in it.
        XSSFCell cell = row.createCell(1);
 
        // Adding hyperlink along with cell value in it.
        cell.setCellFormula(
            "HYPERLINK(\"https://www.geeksforgeeks.org/\", \"click here\")");
 
        // Try block to check for exceptions
        try {
 
            // Step 9
            FileOutputStream outputfile
                = new FileOutputStream(excelfilename);
            workbook.write(outputfile);
 
            // Closing connections using close() method
            outputfile.close();
 
            // Step 11
            System.out.println(
                excelfilename + " is written successfully");
        }
 
        // Catch block to handle exceptions
        catch (FileNotFoundException e) {
 
            // Step 12
            System.out.println("ERROR!! " + e.getMessage());
        }
    }
}


输出:在控制台窗口上

A.当程序成功执行时。

GeeksForGeeks.xlsx is written successfully.

B.当程序没有成功执行时。

ERROR!! GeeksForGeeks.xlsx (The process cannot access the file because it is being used by another process)

输出:工作簿(excel文件)