mirror of https://github.com/apache/poi.git
[bug-65490] add support for removing hyperlink directly from sheet
git-svn-id: https://svn.apache.org/repos/asf/poi/trunk@1892189 13f79535-47bb-0310-9956-ffa450edef68
This commit is contained in:
parent
d7dd7abf78
commit
bf6184fd80
|
@ -3356,15 +3356,29 @@ public class XSSFSheet extends POIXMLDocumentPart implements Sheet {
|
|||
}
|
||||
|
||||
/**
|
||||
* Register a hyperlink in the collection of hyperlinks on this sheet
|
||||
* Register a hyperlink in the collection of hyperlinks on this sheet.
|
||||
* Use {@link XSSFCell#setHyperlink(Hyperlink)} if the hyperlink is just for that one cell.
|
||||
* Use this method if you want to add a Hyperlink that covers a range of sells. If you use
|
||||
* this method, you will need to call {@link XSSFHyperlink#setCellReference(String)} to
|
||||
* explicitly cell the value, eg B2 or B2:C3 (the 4 cells with B2 at top left and C3 at bottom right)
|
||||
*
|
||||
* @param hyperlink the link to add
|
||||
*/
|
||||
@Internal
|
||||
public void addHyperlink(XSSFHyperlink hyperlink) {
|
||||
hyperlinks.add(hyperlink);
|
||||
}
|
||||
|
||||
/**
|
||||
* Remove a hyperlink in the collection of hyperlinks on this sheet.
|
||||
* {@link XSSFCell#removeHyperlink()} can be used if the hyperlink is just for that one cell.
|
||||
*
|
||||
* @param hyperlink the link to remove
|
||||
* @since POI 5.0.1
|
||||
*/
|
||||
public void removeHyperlink(XSSFHyperlink hyperlink) {
|
||||
hyperlinks.remove(hyperlink);
|
||||
}
|
||||
|
||||
/**
|
||||
* Removes a hyperlink in the collection of hyperlinks on this sheet
|
||||
*
|
||||
|
|
|
@ -1790,29 +1790,35 @@ public final class TestXSSFBugs extends BaseTestBugzillaIssues {
|
|||
try (XSSFWorkbook wb = new XSSFWorkbook()) {
|
||||
XSSFSheet sheet = wb.createSheet();
|
||||
XSSFCreationHelper creationHelper = wb.getCreationHelper();
|
||||
XSSFHyperlink hyperlink;
|
||||
|
||||
// Try with a cell reference
|
||||
hyperlink = creationHelper.createHyperlink(HyperlinkType.URL);
|
||||
sheet.addHyperlink(hyperlink);
|
||||
hyperlink.setAddress("http://myurl");
|
||||
hyperlink.setCellReference("B4");
|
||||
assertEquals(3, hyperlink.getFirstRow());
|
||||
assertEquals(1, hyperlink.getFirstColumn());
|
||||
assertEquals(3, hyperlink.getLastRow());
|
||||
assertEquals(1, hyperlink.getLastColumn());
|
||||
XSSFHyperlink hyperlink1 = creationHelper.createHyperlink(HyperlinkType.URL);
|
||||
sheet.addHyperlink(hyperlink1);
|
||||
hyperlink1.setAddress("http://myurl");
|
||||
hyperlink1.setCellReference("B4");
|
||||
assertEquals(3, hyperlink1.getFirstRow());
|
||||
assertEquals(1, hyperlink1.getFirstColumn());
|
||||
assertEquals(3, hyperlink1.getLastRow());
|
||||
assertEquals(1, hyperlink1.getLastColumn());
|
||||
|
||||
// Try with explicit rows / columns
|
||||
hyperlink = creationHelper.createHyperlink(HyperlinkType.URL);
|
||||
sheet.addHyperlink(hyperlink);
|
||||
hyperlink.setAddress("http://myurl");
|
||||
hyperlink.setFirstRow(5);
|
||||
hyperlink.setFirstColumn(3);
|
||||
XSSFHyperlink hyperlink2 = creationHelper.createHyperlink(HyperlinkType.URL);
|
||||
sheet.addHyperlink(hyperlink2);
|
||||
hyperlink2.setAddress("http://myurl");
|
||||
hyperlink2.setFirstRow(5);
|
||||
hyperlink2.setFirstColumn(3);
|
||||
|
||||
assertEquals(5, hyperlink.getFirstRow());
|
||||
assertEquals(3, hyperlink.getFirstColumn());
|
||||
assertEquals(5, hyperlink.getLastRow());
|
||||
assertEquals(3, hyperlink.getLastColumn());
|
||||
assertEquals(5, hyperlink2.getFirstRow());
|
||||
assertEquals(3, hyperlink2.getFirstColumn());
|
||||
assertEquals(5, hyperlink2.getLastRow());
|
||||
assertEquals(3, hyperlink2.getLastColumn());
|
||||
|
||||
assertTrue(sheet.getHyperlinkList().contains(hyperlink1), "sheet contains hyperlink1");
|
||||
assertTrue(sheet.getHyperlinkList().contains(hyperlink2), "sheet contains hyperlink2");
|
||||
|
||||
sheet.removeHyperlink(hyperlink1);
|
||||
assertFalse(sheet.getHyperlinkList().contains(hyperlink1), "sheet no longer contains hyperlink1");
|
||||
assertTrue(sheet.getHyperlinkList().contains(hyperlink2), "sheet still contains hyperlink2");
|
||||
}
|
||||
}
|
||||
|
||||
|
|
Loading…
Reference in New Issue