Java 我正在尝试使用setcolumnwidth在excel 2010上设置列宽

Java 我正在尝试使用setcolumnwidth在excel 2010上设置列宽,java,apache-poi,Java,Apache Poi,我正在尝试使用POI设置columnM宽度setColumnWidth(rowindex,width),问题是宽度是双精度的,上面的函数只接受Int 我试着使用了autosizecolumn,但它在列中的空间仍然不足,我认为问题在于excel和java之间的字体不匹配 代码 不能将双精度值传递给setColumnWidth和autosizecolumn,因为ApachePOI的两种方法都接受int值作为参数。 Apache POI的方法: 1.autoSizeColumn(int列) 调整列宽以

我正在尝试使用POI设置
columnM
宽度
setColumnWidth(rowindex,width)
,问题是宽度是双精度的,上面的函数只接受Int

我试着使用了
autosizecolumn
,但它在列中的空间仍然不足,我认为问题在于excel和java之间的字体不匹配

代码


不能将双精度值传递给setColumnWidth和autosizecolumn,因为ApachePOI的两种方法都接受int值作为参数。 Apache POI的方法: 1.autoSizeColumn(int列) 调整列宽以适应内容。 2.setColumnWidth(int-columnIndex,int-width) 设置宽度(以字符宽度的1/256为单位) 你可以参考 有关更多详细信息,请使用:

NewSheet.getColumnHelper().setColWidth(0, 3755.84);
NewSheet.getColumnHelper().setCustomWidth(0, true);

我不确定是否需要第二行,但如果在excel中手动更改列的宽度,它将自动设置CustomWidth=true。所以我添加它是为了安全。

您可以使用intValue()从double获取int值。
Sheet.autoSizeColumn(03755.84)
甚至不会编译。并描述了
width
的确切含义。假定设置为ColumnWidth,谢谢。它设置了第0列的宽度我希望宽度为3755.84,但函数setColumnWidth不接受它,因为它有两个“我希望宽度为3755.84”:为什么?为什么不是3756或3755?只要Calibri 11用作Excel默认单元格样式中的默认字体,两个整数在Excel中的列宽都将为14。如果Calibri 11是默认字体,则3766在Excel中的列宽为14。默认字体并不意味着它必须是所有单元格的字体,但必须是Excel默认单元格样式的字体。在
/xl/worksheets/sheet?.XML
中导出XML。但最大列宽为255.00。因此Excel呈现的列的列宽为255。所以设置列宽3755.84是毫无用处的。你是对的。宽度应为3755.84/256或任何介于0和255之间的双精度数字。谢谢,但是columnHelper是否与HSSF或XSSF一起工作?
NewSheet.getColumnHelper().setColWidth(0, 3755.84);
NewSheet.getColumnHelper().setCustomWidth(0, true);