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

时间:2016-04-05 17:16:04

标签: java excel apache-poi

我要求Apache POI生成的文件需要使用fit all columns on one page setting集生成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);

}

1 个答案:

答案 0 :(得分: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);

当我使用这些设置写出包含Workbook的{​​{1}}时,我在Excel中打开它时,页面设置对话框选中了“适合于:”单选按钮,并且“1页面宽(空白)高“。在“打印预览”屏幕中,打印设置选项列出了“在一页上适合所有列”选项。