Qiita Teams that are logged in
You are not logged in to any team

Log in to Qiita Team
Community
OrganizationAdvent CalendarQiitadon (β)
Service
Qiita JobsQiita ZineQiita Blog
Help us understand the problem. What is going on with this article?

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

 

iceblue
プログラミング JAVA/C#開発
https://www.e-iceblue.com
Why not register and get more from Qiita?
  1. We will deliver articles that match you
    By following users and tags, you can catch up information on technical fields that you are interested in as a whole
  2. you can read useful information later efficiently
    By "stocking" the articles you like, you can search right away