Come trovare il contenuto di una cella di styling da Excel (creato in Windows Machine) su Ubuntu Machine?

Sto sviluppando un’applicazione Web Java su Ubuntu Linux Machine .

In cui, sto cercando di leggere il contenuto della cella da Excel utilizzando POI . In Cella, contiene alcuni stili come (grassetto, colore, line-through, sottolineatura e così via) insieme al valore da mostrare nella pagina HTML .

Qui, posso trovare di quei contenuti di stile Cell da ogni cella quando Excel è creato in Ubuntu Machine e non funziona se è stato creato in Windows Machine e lo ha letto.

Codice d’esempio:-

public class Excel { private static StringBuilder builder; private static XSSFWorkbook myWorkBook; private static StringBuffer getHTMLFormatted(String textpart, XSSFFont font) { StringBuffer htmlstring = new StringBuffer(); if (font != null) { if (font.getBold()) { htmlstring.append(""); } if (font.getItalic()) { htmlstring.append(""); } if (font.getUnderline() == Font.U_SINGLE) { htmlstring.append(""); } if (font.getTypeOffset() == Font.SS_SUB) { htmlstring.append(""); } if (font.getTypeOffset() == Font.SS_SUPER) { htmlstring.append(""); } if (font.getStrikeout()) { htmlstring.append(""); } } String afterFormat = findingHTMLEndTag(htmlstring.toString()); htmlstring.append(textpart).append(afterFormat); return htmlstring; } private static String findingHTMLEndTag(String format) { builder = new StringBuilder(); String[] split = StringUtils.split(format, "><"); if (split != null) { for (int i = split.length - 1; 0 <= i; i--) { builder.append(""); } return builder.toString(); } return ""; } private static void populateCellData(XSSFCell currentCell) { builder = new StringBuilder(); if (currentCell.getCellType() == Cell.CELL_TYPE_STRING) { if (currentCell.getCellStyle() != null) { if (currentCell.getRichStringCellValue() != null) { XSSFRichTextString richText = currentCell.getRichStringCellValue(); String textstring = richText.getString(); int formattingRuns = currentCell.getRichStringCellValue().numFormattingRuns(); for (int i = 0; i <= formattingRuns; i++) { int indexofformattingrun = richText.getIndexOfFormattingRun(i); String textpart = StringUtils.substring(textstring, indexofformattingrun, indexofformattingrun + richText.getLengthOfFormattingRun(i)); if (i == 0) { short fontIndex = currentCell.getCellStyle().getFontIndex(); XSSFFont f = myWorkBook.getFontAt(fontIndex); builder.append(getHTMLFormatted(textpart, f)); } else { XSSFFont font = richText.getFontOfFormattingRun(i); builder.append(getHTMLFormatted(textpart, font)); } } String txt = builder.length() != 0 ? builder.toString() : textstring; } } } } public static void main(String[] args) throws Exception { myWorkBook = new XSSFWorkbook(new FileInputStream(new File("/home/venkatesan/Downloads/Book.xlsx"))); Sheet mySheet = myWorkBook.getSheetAt(0); XSSFSheet sheet = myWorkBook.getSheetAt(0); if (mySheet != null) { for (int i = 0; i <= mySheet.getLastRowNum(); i++) { XSSFRow row = sheet.getRow(i); if (row != null) { for (int j = 0; j <= row.getLastCellNum(); j++) { if (row.getCell(j) != null && !mySheet.isColumnHidden(j)) { populateCellData(row.getCell(j)); } } } } } } } 

Per favore suggeriscimi di risolvere questo problema.