The bug is reported to NPOI: https://github.com/nissl-lab/npoi/issues/187 The buggy code of NPOI is as follows: private void BeginRow(int rownum, SXSSFRow row1){ ... WriteAsBytes(OutputStream, " customHeight=\"true\" ht=\"" + row.HeightInPoints + "\"");... } The fixed code of NPOI is as follows: The buggy code of NPOI is as follows: private void BeginRow(int rownum, SXSSFRow row1){ ... WriteAsBytes(OutputStream, " customHeight=\"1\" ht=\"" + row.HeightInPoints + "\"");... } Still, I find that POI still sets the attribute to true: beginRow(int,SXSSFRow)@SheetDataWriter void beginRow(int rownum, SXSSFRow row) throws IOException { _out.write("<row"); writeAttribute("r", Integer.toString(rownum + 1)); if (row.hasCustomHeight()) { writeAttribute("customHeight", "true"); writeAttribute("ht", Float.toString(row.getHeightInPoints())); }... }
added r1914152