本章说明如何在电子表格上设置打印区域。在Excel电子表格上,通常的打印区域是从左上到右下。可以根据您的要求定制打印区域。这意味着您可以从整个电子表格中打印特定范围的单元格,自定义纸张尺寸,在打开网格线的情况下打印内容,等等。

    以下代码用于在电子表格上设置打印区域。

    1. import java.io.File;
    2. import java.io.FileOutputStream;
    3.  
    4. import org.apache.poi.xssf.usermodel.XSSFPrintSetup;
    5. import org.apache.poi.xssf.usermodel.XSSFSheet;
    6. import org.apache.poi.xssf.usermodel.XSSFWorkbook;
    7.  
    8. public class PrintArea {
    9. public static void main(String[] args)throws Exception {
    10. XSSFWorkbook workbook = new XSSFWorkbook();
    11. XSSFSheet spreadsheet = workbook.createSheet("Print Area");
    12.  
    13. //set print area with indexes
    14. workbook.setPrintArea(
    15. 0, //sheet index
    16. 0, //start column
    17. 5, //end column
    18. 0, //start row
    19. 5 //end row
    20. );
    21.  
    22. //set paper size
    23. spreadsheet.getPrintSetup().setPaperSize(XSSFPrintSetup.A4_PAPERSIZE);
    24.  
    25. //set display grid lines or not
    26. spreadsheet.setDisplayGridlines(true);
    27.  
    28. //set print grid lines or not
    29. spreadsheet.setPrintGridlines(true);
    30.  
    31. FileOutputStream out = new FileOutputStream(new File("printarea.xlsx"));
    32. workbook.write(out);
    33. out.close();
    34. System.out.println("printarea.xlsx written successfully");
    35. }
    36. }

    让我们将上面的代码另存为PrintArea.java。如下从命令提示符编译并执行它。

    1. $javac PrintArea.java
    2. $java PrintArea

    它将在当前目录中生成一个名为printarea.xlsx的文件,并在命令提示符下显示以下输出。

    1. printarea.xlsx written successfully

    在上面的代码中,我们没有添加任何单元格值。因此,printarea.xlsx是空白文件。但是您可以在下图中观察到,打印预览用网格线显示了打印区域。

    printarea.jpeg