import org.apache.poi.hssf.usermodel.HSSFWorkbook; import org.apache.poi.poifs.filesystem.POIFSFileSystem; import java.io.FileInputStream; import java.io.FileOutputStream; public class Bug_44010 { public static void main(String[] args) { HSSFWorkbook hssfworkbook = null; //---------- // with this workbook it is OK //String workbookFileNameSrc = "bug_44010_OK.xls"; // with this workbook it is NOT OK //String workbookFileNameSrc = "bug_44010_NOTOK.xls"; //---------- String workbookFileNameSrc = args[0]; // open the woorkbook try { POIFSFileSystem fs = new POIFSFileSystem(new FileInputStream(workbookFileNameSrc)); hssfworkbook = new HSSFWorkbook(fs); } catch(Exception exc) { System.out.println(exc.toString()); return; } System.out.println(""); System.out.println("Ouverture du classeur " + workbookFileNameSrc +" ... OK"); // ... try { // write the woorksheet String workbookFileNameDest = workbookFileNameSrc + "_AFTER_HSSF.xls"; FileOutputStream fileOut = new FileOutputStream(workbookFileNameDest); hssfworkbook.write(fileOut); fileOut.close(); //this.hssfworkbook.write(new FileOutputStream(workbookFileNameDest)); System.out.println("Ecriture du classeur " + workbookFileNameDest); } catch(Exception exc) { System.out.println(exc.toString()); return; } } }