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