📜  如何使用Java设置电子表格的打印区域?

📅  最后修改于: 2022-05-13 01:54:44.360000             🧑  作者: Mango

如何使用Java设置电子表格的打印区域?

我们可以在电子表格中设置打印区域。这可以使用Java的Apache POI库来完成。我们使用 POI 库的不同类和方法来设置电子表格的打印区域。通常,它从 Excel 电子表格的左上角到右下角。它可以根据要求定制。我们可以打印整个电子表格中特定范围的单元格、自定义纸张大小、在打开网格线的情况下打印内容等。

创建新工作簿

我们可以使用各种 POI 类创建新的工作簿和电子表格。首先,我们必须创建一个工作簿,然后在该工作簿中创建一个电子表格。在这里,我们使用 XSSFWorkBook 类创建一个名为“workbook”的工作簿对象。然后我们使用 XSSFSheet 类的createSheet()函数创建了一个名为“打印区域”的电子表格。

创建工作簿:

// Create a Work Book
XSSFWorkbook workbook = new XSSFWorkbook();

要在该工作簿中创建电子表格:

// Create spreadsheet named "Print Area"
XSSFSheet spreadsheet = workbook.createSheet("Print Area");

打印区域的设置

现在我们使用setPrintArea()函数设置打印区域。在这个函数中,我们发送五个值。

workbook.setPrintArea(
           0, // sheet index
           0, // start column
           5, // end column
           0, // start row
           5 // end row
     );

我们可以使用setDisplayGridlines()函数在打印区域显示网格线。

// set display grid lines or not
spreadsheet.setDisplayGridlines(true);

要设置纸张大小,我们使用setPaperSize()函数。

// set paper size
spreadsheet.getPrintSetup().setPaperSize(XSSFPrintSetup.A4_PAPERSIZE);

如果我们还想用我们的内容打印网格线,我们可以通过setPrintGridlines()函数完成。

// set print grid lines or not
spreadsheet.setPrintGridlines(true);

下面是问题陈述的实现:

Java
// Java program to set the print area in spreadsheet
  
import java.io.*;
import org.apache.poi.xssf.usermodel.XSSFPrintSetup;
import org.apache.poi.xssf.usermodel.XSSFSheet;
import org.apache.poi.xssf.usermodel.XSSFWorkbook;
  
public class GFG {
    public static void main(String[] args) throws Exception
    {
  
        // Create a Work Book
        XSSFWorkbook workbook = new XSSFWorkbook();
  
        // Create spreadsheet named "Print Area"
        XSSFSheet spreadsheet
            = workbook.createSheet("Print Area");
  
        // Set print area with indexes
        workbook.setPrintArea(0, // Sheet index
                              0, // Start column
                              5, // End column
                              0, // Start row
                              5 // End row
        );
  
        // Set display grid lines or not
        spreadsheet.setDisplayGridlines(true);
  
        // Set paper size
        spreadsheet.getPrintSetup().setPaperSize(
            XSSFPrintSetup.A4_PAPERSIZE);
  
        // Set print grid lines or not
        spreadsheet.setPrintGridlines(true);
  
        // Enter file path/name here
        FileOutputStream out = new FileOutputStream(
            new File("GFGSpreadsheet.xlsx"));
  
        workbook.write(out);
        out.close();
  
        System.out.println(
            "GFGSpreadsheet.xlsx has been created");
    }
}


输出:

然后我们选择了我们必须打印的行和列,以及我们应用于打印区域的一些设置。

然后在所有这些都被执行之后,我们得到了代码中提到的以下确认行。

GFGSpreadsheet.xlsx has been created

在我们的代码中,我们没有为单元格设置任何值,因此该文件是一个空白文件。在打印预览选项卡中,我们选择用于打印的单元格将为空。尽管按照我们的代码,我们已经编写了在打印区域显示网格线的代码。

我们的代码的最终输出如下所示: