1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
|
/* ====================================================================
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.xssf.usermodel;
import junit.framework.TestCase;
import org.apache.poi.xssf.XSSFTestDataSamples;
/**
* @author Yegor Kozlov
*/
public class TestXSSFName extends TestCase {
public void testCreate(){
// Create a new workbook
XSSFWorkbook wb = new XSSFWorkbook();
XSSFName name1 = wb.createName();
name1.setNameName("testOne");
//setting a duplicate name should throw IllegalArgumentException
XSSFName name2 = wb.createName();
try {
name2.setNameName("testOne");
fail("expected exception");
} catch (IllegalArgumentException e){
assertEquals("The workbook already contains this name: testOne", e.getMessage());
}
name2.setNameName("testTwo");
String ref1 = "Test1!$A$1:$B$1";
name1.setReference(ref1);
assertEquals(ref1, name1.getReference());
assertEquals("Test1", name1.getSheetName());
String ref2 = "'Testing Named Ranges'!$A$1:$B$1";
name1.setReference(ref2);
//XSSFName#setReference stores the reference in canonical form and puts the sheet name in single quotes
assertEquals("'Testing Named Ranges'!$A$1:$B$1", name1.getReference());
assertEquals("Testing Named Ranges", name1.getSheetName());
assertEquals(-1, name1.getLocalSheetId());
name1.setLocalSheetId(1);
assertEquals(1, name1.getLocalSheetId());
}
public void testUnicodeNamedRange() {
XSSFWorkbook workBook = new XSSFWorkbook();
workBook.createSheet("Test");
XSSFName name = workBook.createName();
name.setNameName("\u03B1");
name.setReference("Test!$D$3:$E$8");
XSSFWorkbook workBook2 = XSSFTestDataSamples.writeOutAndReadBack(workBook);
XSSFName name2 = workBook2.getNameAt(0);
assertEquals("\u03B1", name2.getNameName());
assertEquals("Test!$D$3:$E$8", name2.getReference());
}
public void testAddRemove() {
XSSFWorkbook wb = new XSSFWorkbook();
assertEquals(0, wb.getNumberOfNames());
XSSFName name1 = wb.createName();
name1.setNameName("name1");
assertEquals(1, wb.getNumberOfNames());
XSSFName name2 = wb.createName();
name2.setNameName("name2");
assertEquals(2, wb.getNumberOfNames());
XSSFName name3 = wb.createName();
name3.setNameName("name3");
assertEquals(3, wb.getNumberOfNames());
wb.removeName("name2");
assertEquals(2, wb.getNumberOfNames());
wb.removeName(0);
assertEquals(1, wb.getNumberOfNames());
}
}
|