如何设置"适合所有列在一个页面上"设置的文件

sup*_*Phi 14 java excel apache-poi

我有一个要求,即Apache POI生成的文件需要在一个页面设置生成一个适合所有列的fie .我已经尝试了一些API的变种,但到目前为止我还没能做到.我也无法真正找到它是否可以完成.

看起来这个setFitToPage(true)功能调整了高度和宽度,而不仅仅是我想要的宽度.使用setFitWidthsetFitHeight喜欢我在各种其他堆栈溢出问题中发现似乎没有任何影响.

这是我到目前为止:

public void setPrintSettings(Sheet sheet) {

   sheet.setFitToPage(true); //this will resize both height and width to fit
   sheet.getPrintSetup().setLandscape(true);

   sheet.getPrintSetup().setFitWidth((short) 1);
   sheet.getPrintSetup().setFitHeight((short) 1);

}
Run Code Online (Sandbox Code Playgroud)

rge*_*man 19

这不是调用,setFitToPage(true)这使得Excel调整高度和宽度以适应一页.此调用是必要的,但原因不同.在Excel的页面设置屏幕中,此方法调用控制对话框中的单选按钮处于活动状态.该值true设置"适合:"的单选按钮,允许您通过页面高框控制页面.该值false设置"调整为:"的单选按钮,正常大小百分比.

在这种情况下,您希望通过"不关心"页面将其适合1页宽.用于页面高(setFitHeight方法)的值0在这里.

sheet.setFitToPage(true);
PrintSetup ps = sheet.getPrintSetup();
ps.setFitWidth( (short) 1);
ps.setFitHeight( (short) 0);
Run Code Online (Sandbox Code Playgroud)

当我写出Workbook包含Sheet这些设置的a,并且我在Excel中打开它时,页面设置对话框选择了"适合:"单选按钮,并且"1页宽(空白)高".在"打印预览"屏幕中,打印设置选项列出所选的"在一页上适合所有列".

  • 这对我有用,但我还必须添加 `sheet.setAutobreaks(true);` 以使工作表切换到“适合”缩放选项。 (2认同)