code: public void process(Reader reader, SheetToCSV sheetToCSV) throws IOException, OpenXML4JException, SAXException {
          ReadOnlySharedStringsTable strings    = new ReadOnlySharedStringsTable(sheetToCSV.getOpcPackage());
          XSSFReader                 xssfReader = new XSSFReader(sheetToCSV.getOpcPackage());
          StylesTable                styles     = xssfReader.getStylesTable();
          XSSFReader.SheetIterator   iter       = (XSSFReader.SheetIterator) xssfReader.getSheetsData();
          int                        index      = 0;
  
          boolean bySheetName = StringUtil.isNotEmpty(reader.sheetName());
  
          while (iter.hasNext()) {
              try (InputStream stream = iter.next()) {
                  String sheetName = iter.getSheetName();
                  if (bySheetName && reader.sheetName().equals(sheetName)) {
                      processSheet(styles, strings, sheetToCSV, stream);
                      break;
                  }
                  if (!bySheetName && reader.sheetIndex() == index) {
                      processSheet(styles, strings, sheetToCSV, stream);
                      break;
                  }
              }
              ++index;
          }
      }
docs: Initiates the processing of the XLS workbook file to CSV.
  
  @throws IOException  If reading the data from the package fails.
  @throws SAXException if parsing the XML data fails.