diff options
author | Yegor Kozlov <yegor@apache.org> | 2008-02-07 08:56:59 +0000 |
---|---|---|
committer | Yegor Kozlov <yegor@apache.org> | 2008-02-07 08:56:59 +0000 |
commit | 4ab00acc7cf8a56a22153c84ec203707cd413846 (patch) | |
tree | 8c66941a9e915ba84f89505ba945c7d4ff110403 /src/testcases/org/apache/poi/hssf/usermodel | |
parent | 766dc98ce36338acc4ad9c21d931c0843994ee40 (diff) | |
download | poi-4ab00acc7cf8a56a22153c84ec203707cd413846.tar.gz poi-4ab00acc7cf8a56a22153c84ec203707cd413846.zip |
support for excel hypelrinks
git-svn-id: https://svn.apache.org/repos/asf/poi/trunk@619310 13f79535-47bb-0310-9956-ffa450edef68
Diffstat (limited to 'src/testcases/org/apache/poi/hssf/usermodel')
-rw-r--r-- | src/testcases/org/apache/poi/hssf/usermodel/TestHSSFCell.java | 14 | ||||
-rwxr-xr-x | src/testcases/org/apache/poi/hssf/usermodel/TestHSSFHyperlink.java | 191 |
2 files changed, 198 insertions, 7 deletions
diff --git a/src/testcases/org/apache/poi/hssf/usermodel/TestHSSFCell.java b/src/testcases/org/apache/poi/hssf/usermodel/TestHSSFCell.java index 80785ca182..6c604d1b4d 100644 --- a/src/testcases/org/apache/poi/hssf/usermodel/TestHSSFCell.java +++ b/src/testcases/org/apache/poi/hssf/usermodel/TestHSSFCell.java @@ -320,8 +320,8 @@ extends TestCase { assertEquals("Foo", link.getLabel()); assertEquals("http://poi.apache.org/", link.getAddress()); - assertEquals(4, link.getRow()); - assertEquals(0, link.getColumn()); + assertEquals(4, link.getFirstRow()); + assertEquals(0, link.getFirstColumn()); } /** @@ -339,16 +339,16 @@ extends TestCase { assertNotNull(link1); assertEquals("Foo", link1.getLabel()); assertEquals("http://poi.apache.org/", link1.getAddress()); - assertEquals(4, link1.getRow()); - assertEquals(0, link1.getColumn()); + assertEquals(4, link1.getFirstRow()); + assertEquals(0, link1.getFirstColumn()); HSSFCell cell2 = sheet.getRow(8).getCell((short)1); HSSFHyperlink link2 = cell2.getHyperlink(); assertNotNull(link2); assertEquals("Bar", link2.getLabel()); - assertEquals("http://poi.apache.org/", link2.getAddress()); - assertEquals(8, link2.getRow()); - assertEquals(1, link2.getColumn()); + assertEquals("http://poi.apache.org/hssf/", link2.getAddress()); + assertEquals(8, link2.getFirstRow()); + assertEquals(1, link2.getFirstColumn()); } diff --git a/src/testcases/org/apache/poi/hssf/usermodel/TestHSSFHyperlink.java b/src/testcases/org/apache/poi/hssf/usermodel/TestHSSFHyperlink.java new file mode 100755 index 0000000000..b87899c343 --- /dev/null +++ b/src/testcases/org/apache/poi/hssf/usermodel/TestHSSFHyperlink.java @@ -0,0 +1,191 @@ +/* ====================================================================
+ Licensed to the Apache Software Foundation (ASF) under one or more
+ contributor license agreements. See the NOTICE file distributed with
+ this work for additional information regarding copyright ownership.
+ The ASF licenses this file to You under the Apache License, Version 2.0
+ (the "License"); you may not use this file except in compliance with
+ the License. You may obtain a copy of the License at
+
+ http://www.apache.org/licenses/LICENSE-2.0
+
+ Unless required by applicable law or agreed to in writing, software
+ distributed under the License is distributed on an "AS IS" BASIS,
+ WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ See the License for the specific language governing permissions and
+ limitations under the License.
+==================================================================== */
+package org.apache.poi.hssf.usermodel;
+
+import junit.framework.TestCase;
+
+import java.io.*;
+
+/**
+ * Tests HSSFHyperlink.
+ *
+ * @author Yegor Kozlov
+ */
+public class TestHSSFHyperlink extends TestCase {
+ protected String cwd = System.getProperty("HSSF.testdata.path");
+
+ /**
+ * Test that we can read hyperlinks.
+ */
+ public void testRead() throws Exception {
+
+ FileInputStream is = new FileInputStream(new File(cwd, "HyperlinksOnManySheets.xls"));
+ HSSFWorkbook wb = new HSSFWorkbook(is);
+ is.close();
+
+ HSSFSheet sheet;
+ HSSFCell cell;
+ HSSFHyperlink link;
+
+ sheet = wb.getSheet("WebLinks");
+ cell = sheet.getRow(4).getCell((short)0);
+ link = cell.getHyperlink();
+ assertNotNull(link);
+ assertEquals("POI", link.getLabel());
+ assertEquals("POI", cell.getRichStringCellValue().getString());
+ assertEquals("http://poi.apache.org/", link.getAddress());
+
+ cell = sheet.getRow(8).getCell((short)0);
+ link = cell.getHyperlink();
+ assertNotNull(link);
+ assertEquals("HSSF", link.getLabel());
+ assertEquals("HSSF", cell.getRichStringCellValue().getString());
+ assertEquals("http://poi.apache.org/hssf/", link.getAddress());
+
+ sheet = wb.getSheet("Emails");
+ cell = sheet.getRow(4).getCell((short)0);
+ link = cell.getHyperlink();
+ assertNotNull(link);
+ assertEquals("dev", link.getLabel());
+ assertEquals("dev", cell.getRichStringCellValue().getString());
+ assertEquals("mailto:dev@poi.apache.org", link.getAddress());
+
+ sheet = wb.getSheet("Internal");
+ cell = sheet.getRow(4).getCell((short)0);
+ link = cell.getHyperlink();
+ assertNotNull(link);
+ assertEquals("Link To First Sheet", link.getLabel());
+ assertEquals("Link To First Sheet", cell.getRichStringCellValue().getString());
+ assertEquals("WebLinks!A1", link.getAddress());
+ }
+
+ public void testModify() throws Exception {
+ FileInputStream is = new FileInputStream(new File(cwd, "HyperlinksOnManySheets.xls"));
+ HSSFWorkbook wb = new HSSFWorkbook(is);
+ is.close();
+
+ HSSFSheet sheet;
+ HSSFCell cell;
+ HSSFHyperlink link;
+
+ sheet = wb.getSheet("WebLinks");
+ cell = sheet.getRow(4).getCell((short)0);
+ link = cell.getHyperlink();
+ //modify the link
+ link.setAddress("www.apache.org");
+
+ //serialize and read again
+ ByteArrayOutputStream out = new ByteArrayOutputStream();
+ wb.write(out);
+
+ wb = new HSSFWorkbook(new ByteArrayInputStream(out.toByteArray()));
+ sheet = wb.getSheet("WebLinks");
+ cell = sheet.getRow(4).getCell((short)0);
+ link = cell.getHyperlink();
+ assertNotNull(link);
+ assertEquals("www.apache.org", link.getAddress());
+
+ }
+
+ public void testCreate() throws Exception {
+ HSSFWorkbook wb = new HSSFWorkbook();
+
+ HSSFCell cell;
+ HSSFSheet sheet = wb.createSheet("Hyperlinks");
+
+ //URL
+ cell = sheet.createRow(0).createCell((short)0);
+ cell.setCellValue("URL Link");
+ HSSFHyperlink link = new HSSFHyperlink(HSSFHyperlink.LINK_URL);
+ link.setAddress("http://poi.apache.org/");
+ cell.setHyperlink(link);
+
+ //link to a file in the current directory
+ cell = sheet.createRow(1).createCell((short)0);
+ cell.setCellValue("File Link");
+ link = new HSSFHyperlink(HSSFHyperlink.LINK_FILE);
+ link.setAddress("link1.xls");
+ cell.setHyperlink(link);
+
+ //e-mail link
+ cell = sheet.createRow(2).createCell((short)0);
+ cell.setCellValue("Email Link");
+ link = new HSSFHyperlink(HSSFHyperlink.LINK_EMAIL);
+ //note, if subject contains white spaces, make sure they are url-encoded
+ link.setAddress("mailto:poi@apache.org?subject=Hyperlinks");
+ cell.setHyperlink(link);
+
+ //link to a place in this workbook
+
+ //create a target sheet and cell
+ HSSFSheet sheet2 = wb.createSheet("Target Sheet");
+ sheet2.createRow(0).createCell((short)0).setCellValue("Target Cell");
+
+ cell = sheet.createRow(3).createCell((short)0);
+ cell.setCellValue("Worksheet Link");
+ link = new HSSFHyperlink(HSSFHyperlink.LINK_DOCUMENT);
+ link.setAddress("'Target Sheet'!A1");
+ cell.setHyperlink(link);
+
+ //serialize and read again
+ ByteArrayOutputStream out = new ByteArrayOutputStream();
+ wb.write(out);
+
+ wb = new HSSFWorkbook(new ByteArrayInputStream(out.toByteArray()));
+ sheet = wb.getSheet("Hyperlinks");
+ cell = sheet.getRow(0).getCell((short)0);
+ link = cell.getHyperlink();
+ assertNotNull(link);
+ assertEquals("http://poi.apache.org/", link.getAddress());
+
+ cell = sheet.getRow(1).getCell((short)0);
+ link = cell.getHyperlink();
+ assertNotNull(link);
+ assertEquals("link1.xls", link.getAddress());
+
+ cell = sheet.getRow(2).getCell((short)0);
+ link = cell.getHyperlink();
+ assertNotNull(link);
+ assertEquals("mailto:poi@apache.org?subject=Hyperlinks", link.getAddress());
+
+ cell = sheet.getRow(3).getCell((short)0);
+ link = cell.getHyperlink();
+ assertNotNull(link);
+ assertEquals("'Target Sheet'!A1", link.getAddress());
+ }
+
+ public void testCloneSheet() throws Exception {
+ FileInputStream is = new FileInputStream(new File(cwd, "HyperlinksOnManySheets.xls"));
+ HSSFWorkbook wb = new HSSFWorkbook(is);
+ is.close();
+
+ HSSFCell cell;
+ HSSFHyperlink link;
+
+ HSSFSheet sheet = wb.cloneSheet(0);
+
+ cell = sheet.getRow(4).getCell((short)0);
+ link = cell.getHyperlink();
+ assertNotNull(link);
+ assertEquals("http://poi.apache.org/", link.getAddress());
+
+ cell = sheet.getRow(8).getCell((short)0);
+ link = cell.getHyperlink();
+ assertNotNull(link);
+ assertEquals("http://poi.apache.org/hssf/", link.getAddress());
+ }
+}
|