You can not select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.

TestXSSFSheetXMLHandler.java 2.0KB

12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455
  1. package org.apache.poi.xssf.eventusermodel;
  2. import org.apache.poi.POIDataSamples;
  3. import org.apache.poi.openxml4j.opc.OPCPackage;
  4. import org.apache.poi.util.XMLHelper;
  5. import org.apache.poi.xssf.eventusermodel.XSSFSheetXMLHandler.SheetContentsHandler;
  6. import org.apache.poi.xssf.usermodel.XSSFComment;
  7. import org.junit.jupiter.api.Test;
  8. import org.xml.sax.InputSource;
  9. import org.xml.sax.XMLReader;
  10. import java.io.InputStream;
  11. import java.util.Iterator;
  12. import static org.junit.jupiter.api.Assertions.assertEquals;
  13. public class TestXSSFSheetXMLHandler {
  14. private static final POIDataSamples _ssTests = POIDataSamples.getSpreadSheetInstance();
  15. @Test
  16. public void testInlineString() throws Exception {
  17. try (OPCPackage xlsxPackage = OPCPackage.open(_ssTests.openResourceAsStream("InlineString.xlsx"))) {
  18. final XSSFReader reader = new XSSFReader(xlsxPackage);
  19. final Iterator<InputStream> iter = reader.getSheetsData();
  20. try (InputStream stream = iter.next()) {
  21. final XMLReader sheetParser = XMLHelper.getSaxParserFactory().newSAXParser().getXMLReader();
  22. sheetParser.setContentHandler(new XSSFSheetXMLHandler(reader.getStylesTable(),
  23. new ReadOnlySharedStringsTable(xlsxPackage), new SheetContentsHandler() {
  24. int cellCount = 0;
  25. @Override
  26. public void startRow(final int rowNum) {
  27. }
  28. @Override
  29. public void endRow(final int rowNum) {
  30. }
  31. @Override
  32. public void cell(final String cellReference, final String formattedValue,
  33. final XSSFComment comment) {
  34. assertEquals("\uD83D\uDE1Cmore text", formattedValue);
  35. assertEquals(cellCount++, 0);
  36. }
  37. }, false));
  38. sheetParser.parse(new InputSource(stream));
  39. }
  40. }
  41. }
  42. }