git-svn-id: https://svn.apache.org/repos/asf/poi/trunk@1894357 13f79535-47bb-0310-9956-ffa450edef68tags/REL_5_2_0
} | } | ||||
} | } | ||||
@Test | |||||
void testHeaderWithAmpersand() throws IOException { | |||||
try (XSSFWorkbook wb = XSSFTestDataSamples.openSampleWorkbook("AmpersandHeader.xlsx")) { | |||||
XSSFSheet s = wb.getSheetAt(0); | |||||
XSSFOddHeader hdr = (XSSFOddHeader) s.getHeader(); | |||||
assertEquals("one && two &&&&", hdr.getCenter()); | |||||
hdr.setAreFieldsStripped(true); | |||||
// In Excel headers fields start with '&' | |||||
// For '&' to appear as text it needs to be escaped as '&&' | |||||
assertEquals("one & two &&", hdr.getCenter()); | |||||
} | |||||
} | |||||
@Test | @Test | ||||
void getAllHeadersFooters() throws IOException { | void getAllHeadersFooters() throws IOException { | ||||
try (XSSFWorkbook workbook = new XSSFWorkbook()) { | try (XSSFWorkbook workbook = new XSSFWorkbook()) { |
assertEquals(simple, XSSFOddHeader.stripFields(withPage)); | assertEquals(simple, XSSFOddHeader.stripFields(withPage)); | ||||
assertEquals(simple, XSSFOddHeader.stripFields(withLots)); | assertEquals(simple, XSSFOddHeader.stripFields(withLots)); | ||||
assertEquals(simple, XSSFOddHeader.stripFields(withFont)); | assertEquals(simple, XSSFOddHeader.stripFields(withFont)); | ||||
assertEquals(simple + "&&", XSSFOddHeader.stripFields(withOtherAnds)); | |||||
assertEquals(simple + "&", XSSFOddHeader.stripFields(withOtherAnds)); | |||||
assertEquals(simple + "&a&b", XSSFOddHeader.stripFields(withOtherAnds2)); | assertEquals(simple + "&a&b", XSSFOddHeader.stripFields(withOtherAnds2)); | ||||
// Now test the default strip flag | // Now test the default strip flag |
// Now do the tricky, dynamic ones | // Now do the tricky, dynamic ones | ||||
// These are things like font sizes, font names and colours | // These are things like font sizes, font names and colours | ||||
text = text.replaceAll("\\&\\d+", ""); | |||||
text = text.replaceAll("\\&\".*?,.*?\"", ""); | |||||
text = text.replaceAll("\\&K[\\dA-F]{6}", ""); | |||||
text = text.replaceAll("\\&K[\\d]{2}[+][\\d]{3}", ""); | |||||
text = text.replaceAll("&\\d+", ""); | |||||
text = text.replaceAll("&\".*?,.*?\"", ""); | |||||
text = text.replaceAll("&K[\\dA-F]{6}", ""); | |||||
text = text.replaceAll("&K[\\d]{2}[+][\\d]{3}", ""); | |||||
text = text.replaceAll("&&", "&"); | |||||
// All done | // All done | ||||
return text; | return text; |
assertEquals(simple, HSSFHeader.stripFields(withPage)); | assertEquals(simple, HSSFHeader.stripFields(withPage)); | ||||
assertEquals(simple, HSSFHeader.stripFields(withLots)); | assertEquals(simple, HSSFHeader.stripFields(withLots)); | ||||
assertEquals(simple, HSSFHeader.stripFields(withFont)); | assertEquals(simple, HSSFHeader.stripFields(withFont)); | ||||
assertEquals(simple + "&&", HSSFHeader.stripFields(withOtherAnds)); | |||||
assertEquals(simple + "&", HSSFHeader.stripFields(withOtherAnds)); | |||||
assertEquals(simple + "&a&b", HSSFHeader.stripFields(withOtherAnds2)); | assertEquals(simple + "&a&b", HSSFHeader.stripFields(withOtherAnds2)); | ||||
// Now test the default strip flag | // Now test the default strip flag | ||||
assertEquals("bar", footer2.getCenter()); | assertEquals("bar", footer2.getCenter()); | ||||
} | } | ||||
} | } | ||||
@Test | |||||
void testHeaderWithAmpersand() throws IOException { | |||||
try (HSSFWorkbook wb = openSampleWorkbook("AmpersandHeader.xls")) { | |||||
HSSFSheet s = wb.getSheetAt(0); | |||||
HSSFHeader h = s.getHeader(); | |||||
String header = h.getCenter(); | |||||
assertEquals("one && two &&&&", header); | |||||
// In Excel headers fields start with '&' | |||||
// For '&' to appear as text it needs to be escaped as '&&' | |||||
assertEquals("one & two &&", HSSFHeader.stripFields(header)); | |||||
} | |||||
} | |||||
} | } |