java - 使用 Apache POI 库将工作表调整到 xlsx 文件中的单个页面时出现问题

标签 java printing apache-poi xlsx

我正在尝试使用适用于 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/

相关文章:

java - 加载 XLSX 文件时为 "Provider com.bea.xml.stream.EventFactory not found"

java - POI 无法打开在 Excel 中打开的工作簿

java - 使用 300dpi 在 java 中打印到硬打印机

c - 打印宏功能

java - HWPFDocument 位于哪里?我在 POI 项目中找不到它

java - JAXB - 解码 OutOfMemory : Java Heap Space

java - Java 字节码中的平台独立性

java - 如果从 Windows 环境变量 PATH 启动,如何获取 Java 中可执行文件的完整路径?

java - 如果 getLine1Number() 返回 null,则获取 Sim 号码的替代方法

html - Chrome 中没有打印预览