search
LoginSignup
0
Help us understand the problem. What are the problem?

More than 1 year has passed since last update.

posted at

Java  Excel ワークシートを印刷

前の記事ではJavaでWord文書を印刷する方法を紹介しましたが、今回の記事ではJava  でExcel ワークシートを印刷する方法を紹介することにしたいと思います。Spire.XLS for Javaを使って「通常使うプリンターで印刷」と「指定するプリンターで印刷」二種類の仕方でやりましょう。

下準備

1.E-iceblueの公式サイトからFree Spire. XLS for Java無料版をダウンロードしてください。

f:id:lendoris:20210114143742p:plain

2.IDEを起動して新規プロジェクトを作成してから、インストールされたファイルにあった相応しいSpire. XLS.jarを参照に追加してください。

f:id:lendoris:20210114143753p:plain

通常使うプリンターで印刷

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 Print {
    public static void main(String[] args) {
        //excelをロードします。
        Workbook workbook = new Workbook();
        workbook.loadFromFile("test.xlsx");

        // PrinterJob objectを作成します。
        PrinterJob printerJob = PrinterJob.getPrinterJob();

        PageFormat pageFormat = printerJob.defaultPage ();

        //印刷ページを設定します。
        Paper paper = pageFormat.getPaper();
        paper.setImageableArea(0, 0, pageFormat.getWidth(), pageFormat.getHeight());
        pageFormat.setPaper(paper);
        printerJob.setCopies(1);
        printerJob.setPrintable(workbook, pageFormat);

        //印刷します。
        try {
            printerJob.print();
        } catch (PrinterException e) {
            e.printStackTrace();
        }
    }
}

指定するプリンターで印刷

import com.spire.xls.*;

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 Print {
    public static void main(String[] args) throws Exception {
        //excelをロードします。
        Workbook workbook = new Workbook();
        workbook.loadFromFile("test.xlsx");

        // PrinterJob objectを作成します。
        PrinterJob printerJob = PrinterJob.getPrinterJob();

        //プリンターを指定します。
        PrintService myPrintService = findPrintService("\\\\192.168.1.104\\HP LaserJet P1007");
        printerJob.setPrintService( myPrintService);
        PageFormat pageFormat = printerJob.defaultPage();

        //印刷のページを設定します。
        Paper paper = pageFormat.getPaper();
        paper.setImageableArea(0, 0, pageFormat.getWidth(), pageFormat.getHeight());
        pageFormat.setPaper(paper);
        printerJob.setCopies(1);
        printerJob.setPrintable(workbook, pageFormat);

        //印刷します。
        try {
            printerJob.print();
        } catch (PrinterException e) {
            e.printStackTrace();
        }
    }

    private static PrintService findPrintService(String printerName) {
        PrintService[] printServices = PrinterJob.lookupPrintServices();
        for (PrintService printService : printServices) {
            if (printService.getName().equals(printerName)) {
                return printService;
            }
        }
        return null;
    }

 

f:id:lendoris:20210114143915p:plain

 

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
What you can do with signing up
0
Help us understand the problem. What are the problem?