private void processWorkBook(InputStream inputStream) throws NumberFormatException, IOException {
   BufferedReader bufferedReader = new BufferedReader(new InputStreamReader(inputStream, "UTF-8"));
   String line = null;
   while ((line = bufferedReader.readLine()) != null) {
     for (String sheetTag : StringUtilities.multiFindBetween(line, "<sheet ", "/>")) {
       String name = StringUtilities.findBetween(sheetTag, "name=\"", "\"");
       String order = StringUtilities.findBetween(sheetTag, "sheetId=\"", "\"");
       String rId = StringUtilities.findBetween(sheetTag, "r:id=\"", "\"");
       Sheet sheet = rIdToSheet.get(rId);
       sheet.setName(name);
       sheet.order = Integer.parseInt(order);
     }
   }
 }
  private void processSharedStrings(ZipInputStream inputStream) throws IOException {
    BufferedReader bufferedReader = new BufferedReader(new InputStreamReader(inputStream, "UTF-8"));
    StringBuilder fullFile = new StringBuilder();
    String line;
    while ((line = bufferedReader.readLine()) != null) fullFile.append(line);

    for (String string : StringUtilities.multiFindBetween(fullFile.toString(), "<si>", "</si>"))
      if (string.trim().equals("</t>")) // Empty string
      sharedStrings.add("");
      else {
        string = StringUtilities.findBetween(string, ">", "<");
        sharedStrings.add(string);
      }
  }
 private void processRels(ZipInputStream inputStream) throws IOException {
   BufferedReader bufferedReader = new BufferedReader(new InputStreamReader(inputStream, "UTF-8"));
   String line = null;
   while ((line = bufferedReader.readLine()) != null)
     for (String tag : StringUtilities.multiFindBetween(line, "<Relationship", ">")) {
       String rId = StringUtilities.findBetween(tag, "Id=\"", "\"");
       String filename = "xl/" + StringUtilities.findBetween(tag, "Target=\"", "\"");
       if (filename.contains("/sheet")) {
         Sheet sheet = new Sheet();
         add(sheet);
         rIdToSheet.put(rId, sheet);
         filenameToSheet.put(filename, sheet);
       }
     }
 }
  private void processSheet(String filename, ZipInputStream inputStream) throws IOException {
    Sheet sheet = filenameToSheet.get(filename);
    // System.out.println(filename + "\t" + sheet.name);
    BufferedReader bufferedReader = new BufferedReader(new InputStreamReader(inputStream, "UTF-8"));
    String line;
    StringBuilder fullSheet = new StringBuilder();
    while ((line = bufferedReader.readLine()) != null) fullSheet.append(line);

    for (String rowLine :
        StringUtilities.multiFindBetween(fullSheet.toString(), "<row", "</row>")) {
      Row row = new Row();
      row.addAll(findCellValues(rowLine));
      if (row.size() != 0) sheet.add(row);
    }
  }