在Apache POI中为生成的Excel文件设置默认缩放比例

我通过Apache POI成功生成了一个Excel文件。 问题是,当我尝试打印它时,最后3列不在可打印区域内。 例如,工作表包含A到L列,但只适合打印时的A列。 打印前,用户总是将打印比例从“无缩放”更改为“将所有列放在一个页面上”。

在这里输入图像说明

我如何修改Excel文件,使所有的列都适合可打印的区域,用户在每次打印时都不需要改变缩放比例。

这可以使用Sheet.setFitToPage和PrintSetup.setFitWidth和PrintSetup.setFitHeight的组合来完成。

例:

 import java.io.*; import org.apache.poi.ss.usermodel.*; import org.apache.poi.xssf.usermodel.*; public class PrintSetupFitWidth { public static void main(String[] args) throws Exception { Workbook workbook = new XSSFWorkbook(); Sheet sheet = workbook.createSheet(); //create at least one cell so print preview is possible sheet.createRow(0).createCell(0).setCellValue("Cell A1"); //set page setup to fit to one page width but multiple pages height sheet.setFitToPage(true); sheet.getPrintSetup().setFitWidth((short)1); sheet.getPrintSetup().setFitHeight((short)0); FileOutputStream fileOut = new FileOutputStream("PrintSetupFitWidth.xlsx"); workbook.write(fileOut); fileOut.close(); workbook.close(); } }