Как напечатать Execl в Java

Печать документов Excel позволяет обмениваться информацией, анализировать данные в автономном режиме или представлять их в натуральном виде на совещаниях или презентациях. Независимо от того, нужно ли вам распечатать всю рабочую книгу, конкретные рабочие листы или выбранные диапазоны, Excel предлагает различные настройки и параметры для обеспечения соответствия печатных документов желаемым характеристикам. В этой статье вы узнаете, как распечатать документы Excel на Java с помощью Free Spire.XLS for Java.
- Определение параметров печати и печать Excel в Java
- Определение принтера и печать Excel в Java
Установка файла Free Spire.Xls.jar
Если вы создали Maven-проект, вы можете легко импортировать jar в свое приложение, используя следующие конфигурации. Для проектов, не использующих Maven, загрузите jar-файл по этой ссылке и добавьте его в качестве зависимости в свое приложение.

Определение параметров печати и печать Excel в Java
Free Spire.XLS for Java предлагает объект PageSetup для управления тем, как будет распечатан рабочий лист. Например:
- Установка области печати в Excel
- Печать заголовков в Excel
- Печать линий сетки в Excel
- Печать комментариев в Excel
- Печать Excel в черно-белом режиме
- Настройка качества печати
- Установка порядка печати страниц рабочего листа
import com.spire.xls.*;
import java.awt.print.PageFormat;
import java.awt.print.Paper;
import java.awt.print.PrinterException;
import java.awt.print.PrinterJob;
public class SetPrintOptions {
public static void main(String[] args) {
//Create a workbook
Workbook workbook = new Workbook();
//Load an Excel document
workbook.loadFromFile("C:\Users\Administrator\Desktop\sample.xlsx");
//Get the first worksheet
Worksheet worksheet = workbook.getWorksheets().get(0);
//Get the PageSetup object of the first worksheet
PageSetup pageSetup = worksheet.getPageSetup();
//Set page margins
pageSetup.setTopMargin(0.3);
pageSetup.setBottomMargin(0.3);
pageSetup.setLeftMargin(0.3);
pageSetup.setRightMargin(0.3);
//Specify print area
pageSetup.setPrintArea("A1:D10″);
//Specify title row
pageSetup.setPrintTitleRows("$1:$2″);
//Allow to print with row/column headings
pageSetup.isPrintHeadings(true);
//Allow to print with gridlines
pageSetup.isPrintGridlines(true);
//Allow to print comments as displayed on worksheet
pageSetup.setPrintComments(PrintCommentType.InPlace);
//Set printing quality (dpi)
pageSetup.setPrintQuality(300);
//Allow to print worksheet in black & white mode
pageSetup.setBlackAndWhite(true);
//Set the printing order
pageSetup.setOrder(OrderType.OverThenDown);
//Fit worksheet on one page
pageSetup.isFitToPage(true);
//Create a PrinterJob object
PrinterJob printerJob = PrinterJob.getPrinterJob();
PageFormat pageFormat = printerJob.defaultPage();
Paper paper = pageFormat.getPaper();
//Set the imageable area of this paper
paper.setImageableArea(0, 0, pageFormat.getWidth(), pageFormat.getHeight());
//Set the number of copies
printerJob.setCopies(1);
pageFormat.setPaper(paper);
//Call painter to render the workbook in the specified format
printerJob.setPrintable(workbook, pageFormat);
//Execute print
try {
printerJob.print();
} catch (PrinterException e) {
e.printStackTrace();
}
}
}
Определение принтера и печать Excel в Java
В этом примере показано, как отправить файл Excel на подключенный к сети принтер в Java.
import com.spire.xls.Workbook;
import javax.print.PrintService;
import java.awt.print.PageFormat;
import java.awt.print.Paper;
import java.awt.print.PrinterException;
import java.awt.print.PrinterJob;
public class SpecifyPrinterSettings {
public static void main(String[] args) throws PrinterException {
//Create a Workbook object
Workbook workbook = new Workbook();
//Load an Excel document
workbook.loadFromFile("C:\Users\Administrator\Desktop\Sample.xlsx");
//Create a PrinterJob object
PrinterJob printerJob = PrinterJob.getPrinterJob();
//Specify printer name
PrintService myPrintService = findPrintService("\\192.168.1.104\HP LaserJet P1007″);
printerJob.setPrintService(myPrintService);
//Create a PageFormat object and set it to the default size and orientation
PageFormat pageFormat = printerJob.defaultPage();
//Return a copy of the Paper object associated with this PageFormat.
Paper paper = pageFormat .getPaper();
//Set the imageable area of this Paper
paper.setImageableArea(0,0,pageFormat .getWidth(),pageFormat .getHeight());
//Set the Paper object for this PageFormat
pageFormat .setPaper(paper);
//Set the number of copies
printerJob .setCopies(1);
//Call painter to render the workbook in the specified format
printerJob .setPrintable(workbook,pageFormat);
//Execute print
try {
printerJob.print();
} catch (PrinterException e) {
e.printStackTrace();
}
}
//Get print service by printer name
private static PrintService findPrintService(String printerName) {
PrintService[] printServices = PrinterJob.lookupPrintServices();
for (PrintService printService : printServices) {
if (printService.getName().equals(printerName)) {
return printService;
}
}
return null;
}
}
Заключение
В этой статье мы узнали, как установить параметры печати Excel и как печатать файлы Excel с помощью Free Spire.XLS for Java. Эта библиотека имеет множество других возможностей, таких как: