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]

Reply via email to