Java 中如何给 Excel 的单元格设置超链接?-灵析社区

PunkMaccccc

Java 中如何给 Excel 的单元格设置超链接 我想导入一个excel文件,并且通过java代码给某个单元格设置超链接(业务需求)。请问大家有什么思路没

阅读量:15

点赞量:0

问AI
你如果使用poi 组件来写入Excel 直接有方法调用,例如 XSSFRow row3 = sheet.createRow(5); XSSFCell cell3 = row3.createCell(0); cell3.setCellValue("链接到百度网站"); XSSFHyperlink hyperlink2 = creationHelper.createHyperlink(HyperlinkType.URL); hyperlink2.setAddress("https://www.baidu.com/"); cell3.setHyperlink(hyperlink2); import org.apache.poi.common.usermodel.HyperlinkType; import org.apache.poi.ss.util.CellRangeAddress; import org.apache.poi.xssf.usermodel.*; import java.awt.Color; import java.io.File; import java.io.FileOutputStream; public class StyleStudy { public static void main(String[] args) { FileOutputStream out = null; XSSFWorkbook xSSFWorkbook = null; try { xSSFWorkbook = new XSSFWorkbook(); margeCell(xSSFWorkbook); out = new FileOutputStream(new File("C:\\Users\\Administrator\\Desktop\\test\\study\\"+System.currentTimeMillis()+".xlsx")); xSSFWorkbook.write(out); System.out.println("EXCEL文件已生成========="); }catch (Exception e){ e.printStackTrace(); } } /** * 单元格设置 * @param workbook */ private static void margeCell(XSSFWorkbook workbook) { XSSFSheet sheet = workbook.createSheet(); // 合并单元格,1到4行,1到4列进行合并 XSSFRow row1 = sheet.createRow(0); row1.createCell(0).setCellValue("合并单元格"); sheet.addMergedRegion(new CellRangeAddress(0,3,0,3)); /** * 设置超链接 */ XSSFRow row2 = sheet.createRow(4); XSSFCell cell2 = row2.createCell(0); cell2.setCellValue("另一个sheet页的指定位置"); XSSFCreationHelper creationHelper = workbook.getCreationHelper(); XSSFHyperlink hyperlink = creationHelper.createHyperlink(HyperlinkType.DOCUMENT); // 链接到此Excel的任何地方,以“!”分割,前面表示sheet的名字,没有则本sheet页进行跳转 hyperlink.setAddress("跳转sheet页!A10"); cell2.setHyperlink(hyperlink); // 创建第二个sheet页提供跳转 XSSFSheet sheet1 = workbook.createSheet("跳转sheet页"); sheet1.createRow(9).createCell(0).setCellValue("跳转到这里"); // 链接到指定网站 XSSFRow row3 = sheet.createRow(5); XSSFCell cell3 = row3.createCell(0); cell3.setCellValue("链接到百度网站"); XSSFHyperlink hyperlink2 = creationHelper.createHyperlink(HyperlinkType.URL); hyperlink2.setAddress("https://www.baidu.com/"); cell3.setHyperlink(hyperlink2); // 打开指定文件 XSSFRow row4 = sheet.createRow(5); XSSFCell cell4 = row4.createCell(0); cell4.setCellValue("链接到指定文件"); XSSFHyperlink hyperlink3 = creationHelper.createHyperlink(HyperlinkType.FILE); File file = new File("C:\\Users\\Administrator\\Desktop\\test\\4、图片文件\\01.jpg"); String filePath = file.toURI().toString(); System.out.println("文件路径:"+filePath); hyperlink3.setAddress(filePath); cell4.setHyperlink(hyperlink3); }