使用改变超链接位置的方式实现取消效果,效果如下。
取消后:
代码如下:
public void deleteExcel2007AllHyperLink(String filePath) throws Exception { XSSFWorkbook wb = new XSSFWorkbook(new FileInputStream(filePath)); Font hylinkFont = wb.createFont(); hylinkFont.setColor(Font.COLOR_NORMAL); hylinkFont.setUnderline(Font.U_NONE); int totalSheet = wb.getNumberOfSheets(); for (int i = 0; i < totalSheet; i++) { XSSFSheet sheet = wb.getSheetAt(i); int rowCount = sheet.getLastRowNum(); for (int r = 0; r <= rowCount; r++) { XSSFRow row = sheet.getRow(r); if (row != null) { int lastCellNum = row.getLastCellNum(); XSSFCell cell = null; for (int c = 0; c <= lastCellNum; c++) { cell = row.getCell(c); if (cell == null) { continue; } XSSFHyperlink hylink = cell.getHyperlink(); if (hylink != null) { //设置超链接位置为excel最后一个单元格位置,达到删除的功能 hylink.setFirstRow(1048573); hylink.setLastRow(1048573); hylink.setFirstColumn(16383); hylink.setLastColumn(16383); hylink.setLabel(null); hylink.setAddress(""); RichTextString richStr = new XSSFRichTextString(cell.getRichStringCellValue().getString()); richStr.applyFont(hylinkFont); cell.setCellValue(richStr); } } } } } saveWorkBook(wb); } public void printExcelHyperLinkInfo(String filePath) throws Exception { Workbook wb = new XSSFWorkbook(new FileInputStream(filePath)); int totalSheet = wb.getNumberOfSheets(); for (int i = 0; i < totalSheet; i++) { Sheet sheet = wb.getSheetAt(0); int rowCount = sheet.getLastRowNum(); for (int r = 0; r <= rowCount; r++) { Row row = sheet.getRow(r); if (row != null) { int lastCellNum = row.getLastCellNum(); Cell cell = null; for (int c = 0; c <= lastCellNum; c++) { cell = row.getCell(c); if(cell==null){ continue; } Hyperlink hylink = cell.getHyperlink(); if (hylink != null) { StringBuffer sb = new StringBuffer(); sb.append(" 工作簿名称:").append(sheet.getSheetName()); sb.append(" 第").append((r + 1)).append("行"); sb.append(" 第").append((c + 1)).append("列"); sb.append(" 位置:").append(convertNumToLetter(c + 1)).append((r + 1)); sb.append(" 单元格内容:").append(cell.getRichStringCellValue().getString()); sb.append(" 超链接地址:").append(hylink.getAddress()); sb.append(" 超链接内容:").append(hylink.getLabel()); switch (hylink.getType()) { case 1: sb.append(" 超链接类型:").append("网页URL"); break; case 2: sb.append(" 超链接类型:").append("文档"); break; case 3: sb.append(" 超链接类型:").append("邮箱"); break; case 4: sb.append(" 超链接类型:").append("文件"); break; default: sb.append(" 超链接类型:").append("未知"); break; } sb.append(" 开始行:").append(hylink.getFirstRow()).append(" 开始列").append(hylink.getFirstColumn()); sb.append(" 结束行:").append(hylink.getLastRow()).append(" 结束列").append(hylink.getLastColumn()); System.out.println(sb.toString()); } } } } } wb.close(); } public String convertNumToLetter(int colNum) { String colLetter = ""; do { colNum--; colLetter = ((char) (colNum % 26 + (int) 'A')) + colLetter; colNum = (int) ((colNum - colNum % 26) / 26); } while (colNum > 0); return colLetter; } public void saveWorkBook(Workbook wb) throws Exception { FileOutputStream fileOut = new FileOutputStream( "f:/saveFile/temp/sys_xlsx_" + System.currentTimeMillis() + ".xlsx"); wb.write(fileOut); fileOut.close(); }
全文完。
相关推荐
本篇文章主要探讨如何利用POI在Excel单元格中添加超链接,并设置字体颜色。 首先,为了使用Apache POI库,你需要在Maven项目的pom.xml文件中引入以下依赖: ```xml <!-- 主要的POI库 --> <groupId>org.apache...
下面是一个简单的代码示例,展示如何使用Apache POI添加和读取Excel超链接: ```java import org.apache.poi.ss.usermodel.*; import org.apache.poi.xssf.usermodel.XSSFWorkbook; import java.io....
标题 "POI 生成EXCEL2007【含例子】" 涉及到的知识点主要集中在Apache POI库的使用上,这是一个强大的Java API,用于读取、写入和修改Microsoft Office格式的文件,特别是Excel文件。在这个场景中,重点是创建和操作...
JAVA开发中需要将表格中数据导出成EXCEL文件,其中的某一项又要设置为HTML格式,并支持点击链接,使用POI的开源方式导出时可以参考到此文件的内容!
使用POI版本:3.10-FINAL*/ /* 建立新HSSFWorkbook对象*/ HSSFWorkbook wb = new HSSFWorkbook(); /* 建立新的sheet对象*/ HSSFSheet sheet = wb.createSheet("汇总页面"); HSSFRow row = sheet....
最新版poi解析excel2007源码,简单实用,需要的可下.
### POI处理 Excel 2007:详细解析与示例代码分析 #### 一、概述 Apache POI 是一个用于读写 Microsoft Office 格式文件的 Java API,包括 Excel、Word 和 PowerPoint 等。POI 提供了对 `.xls`(Excel 97-2003)和...
下面是一个简单的Java代码示例,演示如何使用POI来读取Excel 2007文件: ```java //office2007工作区 XSSFWorkbook wb = new XSSFWorkbook(new FileInputStream("D:/temp/test_poi.xlsx")); //获得该工作区的第一...
Java POI 实现 Excel 导入导出 Java POI 是一个流行的 Java 库,用于处理 Microsoft Office 文件格式,包括 Excel 文件。在本文中,我们将详细介绍如何使用 Java POI 实现 Excel 导入导出功能。 1. 什么是 Java ...
标题中的“poi读取Excel2007文件”指的是使用Apache POI库来读取Microsoft Excel 2007及更高版本(XLSX格式)的文件。Apache POI是Java平台上的一个开源项目,它提供了API来处理Microsoft Office格式的文件,包括...
### POI Excel知识点详解 #### 一、Jakarta POI简介与Apache POI的作用 Jakarta POI 是 Apache POI 的早期项目名称,它提供了一组 API 来处理 Microsoft Office 文件格式,特别是针对 Excel(`.xls` 和 `.xlsx`)...
Apache POI提供了对这种新格式的支持,让我们能够使用Java处理Excel 2007的文件。 首先,你需要在项目中添加Apache POI的依赖。对于版本3.8,你可以在Maven仓库中找到对应的JAR包,或者通过Maven或Gradle将其添加到...
本篇文章将详细介绍如何使用POI库来操作Excel,并向单元格中添加超链接。 首先,让我们了解什么是Apache POI。Apache POI是一个开源项目,它提供了一组API,允许程序员创建、修改和显示Microsoft Office文件。在...
在使用 POI 处理 Excel 文件时,经常需要给单元格添加超链接功能,这不仅可以提升文档的交互性,还能方便用户快速访问相关信息。 #### 二、基础知识 1. **HSSFWorkbook**:代表 Excel 工作簿对象。 2. **HSSFSheet...
在描述中提到的"POI解析Excel2007",指的是使用Apache POI处理Microsoft Excel 2007(以及之后版本)创建的.xlsx文件。这种格式基于Open XML标准,与早期的.xls文件不同,它采用ZIP存档结构存储数据,因此可以包含...
Java 使用Apache POI库操作Excel 2007文件详解 在Java开发中,处理Excel文件是一项常见的任务,特别是对于数据分析、数据导入导出或报表生成等场景。Apache POI是一个流行的开源库,它允许开发者读写Microsoft ...
Apache POI是一个流行的Java库,用于读取和写入Microsoft Office格式的文件,尤其是Excel(.xlsx和.xls)文件。这个实例提供了两种方法来导出Excel文件:通过Servlet和通过main方法。这两种方法都是在Java环境中操作...
POI解析excel2007和生成excel2007.pdf Apache POI 是一个开源的 Java 库,用于读取和写入各种 Microsoft Office 文件格式,包括 Excel、Word、PowerPoint 等。今天,我们将讨论如何使用 Apache POI 来解析 excel...
用poi操作excel2007时需要用到的jar包: poi项目的:1.poi-3.9-20121203.jar 2.poi-ooxml-3.9-20121203.jar 3.poi-ooxml-schemas-3.9-20121203.jar dom4j项目的:dom4j-1.6.1.jar xmlbeans项目的:xbean.jar ...
综上所述,Apache POI结合简单工厂模式,为Java开发者提供了一种高效、灵活的方式来读取和处理Excel文件,无论它们是2003的.xls格式还是2007及以后的.xlsx格式。在实际开发中,这样的工具能够帮助我们构建跨版本兼容...