我正在尝试使用适用于 Java 的 Apache POI 库创建一些 xlsx 文件,创建这些文件的一切工作正常。
当我想使用物理打印机打印这些文件时,问题就来了。我想让我的工作簿中的每张纸都适合一页。我查看了文档,发现以下代码应该可以工作:
XSSFWorkbook wb = new XSSFWorkbook();
XSSFSheet sheet = wb.createSheet("format sheet");
PrintSetup ps = sheet.getPrintSetup();
sheet.setAutobreaks(true);
ps.setFitHeight((short)1);
ps.setFitWidth((short)1);
for(int i = 0; i < 100; ++i){
sheet.createRow(i);
sheet.getRow(i).createCell(0).setCellValue("Test " + i);
}
FileOutputStream output = new FileOutputStream("Test.xlsx");
wb.write(output);
output.close();
但它没有...当我尝试打印它时,它打印到三张纸上(如果我不使用 PrintSetup 部件,它实际上应该打印在什么上面)。所以代码根本没有做任何事情。
谁能告诉我这段代码有什么问题?
此外,我还有另一个关于打印 xlsx 文件的问题:我想知道是否有一种方法可以从我的 Java 程序打印 xlsx 文件而无需实际打开文件并单击打印?像 wb.printAllSheetsInWorkbook(); 或类似的东西。
最佳答案
之后
ps.setFitHeight((short)1);
ps.setFitWidth((short)1);
使用
sheet.setFitToPage(true);
关于java - 使用 Apache POI 库将工作表调整到 xlsx 文件中的单个页面时出现问题,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/10068074/