@Override
public void parseContent(final MultivaluedMap<String, String> parameters, final InputStream inputStream,
final String extension, final String mimeType, final ParserResultBuilder resultBuilder) throws Exception {
final HSSFWorkbook workbook = new HSSFWorkbook(inputStream);
try (final ExcelExtractor excel = new ExcelExtractor(workbook)) {
final ParserFieldsBuilder metas = resultBuilder.metas();
metas.set(MIME_TYPE, findMimeType(extension, mimeType, this::findMimeTypeUsingDefault));
final SummaryInformation info = excel.getSummaryInformation();
if (info != null) {
metas.add(TITLE, info.getTitle());
metas.add(AUTHOR, info.getAuthor());
metas.add(SUBJECT, info.getSubject());
metas.add(CREATION_DATE, info.getCreateDateTime());
metas.add(MODIFICATION_DATE, info.getLastSaveDateTime());
metas.add(KEYWORDS, info.getKeywords());
}
final ParserFieldsBuilder result = resultBuilder.newDocument();
result.add(CONTENT, excel.getText());
result.add(LANG_DETECTION, languageDetection(result, CONTENT, 10000));
}
}
}