我要求Apache POI生成的文件需要使用fit all columns on one page setting集生成fie。我已经尝试了一些API的变种,但到目前为止我还没能做到。我也无法真正找到它是否可以完成。
似乎setFitToPage(true)
功能调整了高度和宽度,而不仅仅是我想要的宽度。使用setFitWidth
和setFitHeight
就像我在各种其他堆栈溢出问题中找到的那样似乎没有任何影响。
这是我到目前为止所做的:
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);
}
答案 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页面宽(空白)高“。在“打印预览”屏幕中,打印设置选项列出了“在一页上适合所有列”选项。