Author: onealj
Date: Thu Jan 19 07:44:25 2017
New Revision: 1779426
URL: http://svn.apache.org/viewvc?rev=1779426&view=rev
Log:
bug 60601: unlink hyperlinks from a sheet if all hyperlinks have been removed.
Patch from Joachim Piketz
Modified:
poi/trunk/src/ooxml/java/org/apache/poi/xssf/usermodel/XSSFSheet.java
poi/trunk/src/testcases/org/apache/poi/ss/usermodel/BaseTestSheet.java
Modified: poi/trunk/src/ooxml/java/org/apache/poi/xssf/usermodel/XSSFSheet.java
URL:
http://svn.apache.org/viewvc/poi/trunk/src/ooxml/java/org/apache/poi/xssf/usermodel/XSSFSheet.java?rev=1779426&r1=1779425&r2=1779426&view=diff
==============================================================================
--- poi/trunk/src/ooxml/java/org/apache/poi/xssf/usermodel/XSSFSheet.java
(original)
+++ poi/trunk/src/ooxml/java/org/apache/poi/xssf/usermodel/XSSFSheet.java Thu
Jan 19 07:44:25 2017
@@ -3484,6 +3484,9 @@ public class XSSFSheet extends POIXMLDoc
}
worksheet.getHyperlinks().setHyperlinkArray(ctHls);
}
+ else {
+ worksheet.unsetHyperlinks();
+ }
int minCell=Integer.MAX_VALUE, maxCell=Integer.MIN_VALUE;
for(XSSFRow row : _rows.values()){
Modified: poi/trunk/src/testcases/org/apache/poi/ss/usermodel/BaseTestSheet.java
URL:
http://svn.apache.org/viewvc/poi/trunk/src/testcases/org/apache/poi/ss/usermodel/BaseTestSheet.java?rev=1779426&r1=1779425&r2=1779426&view=diff
==============================================================================
--- poi/trunk/src/testcases/org/apache/poi/ss/usermodel/BaseTestSheet.java
(original)
+++ poi/trunk/src/testcases/org/apache/poi/ss/usermodel/BaseTestSheet.java Thu
Jan 19 07:44:25 2017
@@ -1231,6 +1231,29 @@ public abstract class BaseTestSheet {
workbook.close();
}
+
+ @Test
+ public void removeAllHyperlinks() throws IOException {
+ Workbook workbook = _testDataProvider.createWorkbook();
+ Hyperlink hyperlink =
workbook.getCreationHelper().createHyperlink(HyperlinkType.URL);
+ hyperlink.setAddress("https://poi.apache.org/");
+ Sheet sheet = workbook.createSheet();
+ Cell cell = sheet.createRow(5).createCell(1);
+ cell.setHyperlink(hyperlink);
+
+ assertEquals(1, workbook.getSheetAt(0).getHyperlinkList().size());
+ // Save a workbook with a hyperlink
+ Workbook workbook2 = _testDataProvider.writeOutAndReadBack(workbook);
+ assertEquals(1, workbook2.getSheetAt(0).getHyperlinkList().size());
+
+ // Remove all hyperlinks from a saved workbook
+ workbook2.getSheetAt(0).getRow(5).getCell(1).removeHyperlink();
+ assertEquals(0, workbook2.getSheetAt(0).getHyperlinkList().size());
+
+ // Verify that hyperlink was removed from workbook after writing out
+ Workbook workbook3 = _testDataProvider.writeOutAndReadBack(workbook2);
+ assertEquals(0, workbook3.getSheetAt(0).getHyperlinkList().size());
+ }
@Test
---------------------------------------------------------------------
To unsubscribe, e-mail: [email protected]
For additional commands, e-mail: [email protected]