在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(); } }