Class ReadOnlySharedStringsTable

java.lang.Object
org.xml.sax.helpers.DefaultHandler
org.apache.poi.xssf.eventusermodel.ReadOnlySharedStringsTable
All Implemented Interfaces:
SharedStrings, ContentHandler, DTDHandler, EntityResolver, ErrorHandler

public class ReadOnlySharedStringsTable extends DefaultHandler implements SharedStrings

This is a lightweight way to process the Shared Strings table. Most of the text cells will reference something from in here.

Note that each SI entry can have multiple T elements, if the string is made up of bits with different formatting.

Example input:

<?xml version="1.0" encoding="UTF-8" standalone="yes" ?>
<sst xmlns="http://schemas.openxmlformats.org/spreadsheetml/2006/main" count="2" uniqueCount="2">
 <si>
   <r>
     <rPr>
       <b />
       <sz val="11" />
       <color theme="1" />
       <rFont val="Calibri" />
       <family val="2" />
       <scheme val="minor" />
     </rPr>
     <t>This:</t>
   </r>
   <r>
     <rPr>
       <sz val="11" />
       <color theme="1" />
       <rFont val="Calibri" />
       <family val="2" />
       <scheme val="minor" />
     </rPr>
     <t xml:space="preserve">Causes Problems</t>
   </r>
 </si>
 <si>
   <t>This does not</t>
 </si>
</sst>
 
  • Field Details

    • includePhoneticRuns

      protected final boolean includePhoneticRuns
    • count

      protected int count
      An integer representing the total count of strings in the workbook. This count does not include any numbers, it counts only the total of text strings in the workbook.
    • uniqueCount

      protected int uniqueCount
      An integer representing the total count of unique strings in the Shared String Table. A string is unique even if it is a copy of another string, but has different formatting applied at the character level.
  • Constructor Details

  • Method Details

    • readFrom

      public void readFrom(InputStream is) throws IOException, SAXException
      Read this shared strings table from an XML file.
      Parameters:
      is - The input stream containing the XML document.
      Throws:
      IOException - if an error occurs while reading.
      SAXException - if parsing the XML data fails.
    • getCount

      public int getCount()
      Return an integer representing the total count of strings in the workbook. This count does not include any numbers, it counts only the total of text strings in the workbook.
      Specified by:
      getCount in interface SharedStrings
      Returns:
      the total count of strings in the workbook
    • getUniqueCount

      public int getUniqueCount()
      Returns an integer representing the total count of unique strings in the Shared String Table. A string is unique even if it is a copy of another string, but has different formatting applied at the character level.
      Specified by:
      getUniqueCount in interface SharedStrings
      Returns:
      the total count of unique strings in the workbook
    • getEntryAt

      @Removal(version="4.2") @Deprecated public String getEntryAt(int idx)
      Deprecated.
      use getItemAt instead
      Return the string at a given index. Formatting is ignored.
      Parameters:
      idx - index of item to return.
      Returns:
      the item at the specified position in this Shared String table.
    • getItems

      @Removal(version="4.2") @Deprecated public List<String> getItems()
      Deprecated.
      use getItemAt instead
      Returns all the strings. Formatting is ignored.
      Returns:
      a list with all the strings
    • getItemAt

      public RichTextString getItemAt(int idx)
      Description copied from interface: SharedStrings
      Return a string item by index
      Specified by:
      getItemAt in interface SharedStrings
      Parameters:
      idx - index of item to return.
      Returns:
      the item at the specified position in this Shared String table.
    • startElement

      public void startElement(String uri, String localName, String name, Attributes attributes) throws SAXException
      Specified by:
      startElement in interface ContentHandler
      Overrides:
      startElement in class DefaultHandler
      Throws:
      SAXException
    • endElement

      public void endElement(String uri, String localName, String name) throws SAXException
      Specified by:
      endElement in interface ContentHandler
      Overrides:
      endElement in class DefaultHandler
      Throws:
      SAXException
    • characters

      public void characters(char[] ch, int start, int length) throws SAXException
      Captures characters only if a t(ext) element is open.
      Specified by:
      characters in interface ContentHandler
      Overrides:
      characters in class DefaultHandler
      Throws:
      SAXException