Quellcode durchsuchen

bug 59872: add Sheet.getHyperlink(CellAddress)

git-svn-id: https://svn.apache.org/repos/asf/poi/trunk@1753009 13f79535-47bb-0310-9956-ffa450edef68
tags/REL_3_15_BETA3
Javen O'Neal vor 7 Jahren
Ursprung
Commit
dcf43f75bd

+ 11
- 0
src/java/org/apache/poi/hssf/usermodel/HSSFSheet.java Datei anzeigen

@@ -2215,6 +2215,17 @@ public final class HSSFSheet implements org.apache.poi.ss.usermodel.Sheet {
return null;
}
/**
* Get a Hyperlink in this sheet located in a cell specified by {code addr}
*
* @param addr The address of the cell containing the hyperlink
* @return hyperlink if there is a hyperlink anchored at {@code addr}; otherwise returns {@code null}
*/
@Override
public HSSFHyperlink getHyperlink(CellAddress addr) {
return getHyperlink(addr.getRow(), addr.getColumn());
}
/**
* Get a list of Hyperlinks in this sheet
*

+ 8
- 0
src/java/org/apache/poi/ss/usermodel/Sheet.java Datei anzeigen

@@ -1158,6 +1158,14 @@ public interface Sheet extends Iterable<Row> {
*/
public Hyperlink getHyperlink(int row, int column);
/**
* Get a Hyperlink in this sheet located in a cell specified by {code addr}
*
* @param addr The address of the cell containing the hyperlink
* @return hyperlink if there is a hyperlink anchored at {@code addr}; otherwise returns {@code null}
*/
public Hyperlink getHyperlink(CellAddress addr);
/**
* Get a list of Hyperlinks in this sheet
*

+ 11
- 0
src/ooxml/java/org/apache/poi/xssf/streaming/SXSSFSheet.java Datei anzeigen

@@ -1665,6 +1665,17 @@ public class SXSSFSheet implements Sheet
return _sh.getHyperlink(row, column);
}
/**
* Get a Hyperlink in this sheet located in a cell specified by {code addr}
*
* @param addr The address of the cell containing the hyperlink
* @return hyperlink if there is a hyperlink anchored at {@code addr}; otherwise returns {@code null}
*/
@Override
public XSSFHyperlink getHyperlink(CellAddress addr) {
return _sh.getHyperlink(addr);
}
/**
* Get a list of Hyperlinks in this sheet
*

+ 12
- 1
src/ooxml/java/org/apache/poi/xssf/usermodel/XSSFSheet.java Datei anzeigen

@@ -806,7 +806,18 @@ public class XSSFSheet extends POIXMLDocumentPart implements Sheet {
*/
@Override
public XSSFHyperlink getHyperlink(int row, int column) {
String ref = new CellReference(row, column).formatAsString();
return getHyperlink(new CellAddress(row, column));
}
/**
* Get a Hyperlink in this sheet located in a cell specified by {code addr}
*
* @param addr The address of the cell containing the hyperlink
* @return hyperlink if there is a hyperlink anchored at {@code addr}; otherwise returns {@code null}
*/
@Override
public XSSFHyperlink getHyperlink(CellAddress addr) {
String ref = addr.formatAsString();
for(XSSFHyperlink hyperlink : hyperlinks) {
if(hyperlink.getCellRef().equals(ref)) {
return hyperlink;

+ 21
- 0
src/testcases/org/apache/poi/ss/usermodel/BaseTestSheet.java Datei anzeigen

@@ -1208,6 +1208,27 @@ public abstract class BaseTestSheet {
workbook.close();
wb.close();
}
@Test
public void getHyperlink() throws IOException {
Workbook workbook = _testDataProvider.createWorkbook();
Hyperlink hyperlink = workbook.getCreationHelper().createHyperlink(Hyperlink.LINK_URL);
hyperlink.setAddress("https://poi.apache.org/");
Sheet sheet = workbook.createSheet();
Cell cell = sheet.createRow(5).createCell(1);
assertEquals("list size before add", 0, sheet.getHyperlinkList().size());
cell.setHyperlink(hyperlink);
assertEquals("list size after add", 1, sheet.getHyperlinkList().size());
assertEquals("list", hyperlink, sheet.getHyperlinkList().get(0));
assertEquals("row, col", hyperlink, sheet.getHyperlink(5, 1));
assertEquals("addr", hyperlink, sheet.getHyperlink(new CellAddress("B4")));
assertEquals("no hyperlink at A1", null, sheet.getHyperlink(CellAddress.A1));
workbook.close();
}


@Test

Laden…
Abbrechen
Speichern