如何使用Java向单元格的内容添加超链接?
使用Java和 Apache POI 添加指向单元格内容的超链接。 Apache POI 是一个Java库,用于处理 Microsoft Office 文档。
安装:
在我们的Java项目中安装Apache POI依赖有两种方式:
- 从 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
- 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();
}
}
输出: