LoginSignup
0
0

More than 1 year has passed since last update.

JavaでExcelのセルに目盛線(グリッド線)またはボーダーを適用する方法

Last updated at Posted at 2022-12-23

罫線と目盛線は同じではありません。目盛線は、ワークシート全体を貫く1画素単位の灰色の線です。主な目的は、ワークシート上で作業する際に、セルの境界を確認できるようにすることです。目盛線は、セルや枠線に色を付けると見えなくなります。罫線は、さまざまな幅や2重の線を持つことができ、色をつけることもできます。罫線は常に通常の印刷と一緒に印刷されます。
今回は、無料のFree Spire.XLS for Javaを使って、JavaでExcelのセルに目盛線や罫線を適用する方法を紹介します。

【依存関係の追加】

この方法は、無料のFree Spire.XLS for Javaが必要ですので、先にjarファイルをインポートしてください。

1. Maven

Maven を使用している場合、プロジェクトの pom.xml ファイルに以下のコードを追加することで、簡単にアプリケーションに JAR ファイルをインポートすることができます。

<repositories>
    <repository>
        <id>com.e-iceblue</id>
        <name>e-iceblue</name>
        <url>https://repo.e-iceblue.com/nexus/content/groups/public/</url>
    </repository>
</repositories>
<dependencies>
    <dependency>
        <groupId>e-iceblue</groupId>
        <artifactId>spire.xls.free</artifactId>
        <version>5.1.0</version>
    </dependency>
</dependencies>

2. 公式サイトよりJarファイルをダウンロード

まず、Free Spire.XLS for Javaの公式サイトよりzipファイルをダウンロードします。zipファイルを解凍し、libフォルダの下にあるSpire.Xls.jarファイルを依存関係としてプロジェクトにインポートしてください。

ワークシートに目盛線を表示する

目盛線は常にワークシートまたはワークブック全体に適用され、特定のセルや範囲に適用することはできません。 Worksheet.setGridLinesVisible() メソッドは、ワークシートに目盛線を表示するかどうかを制御するメソッドです。以下は、Free Spire.XLS for Javaを使用して目盛線を表示させる手順です。

  • Workbookクラスのオブジェクトを作成します。
  • Workbook.loadFromFile() メソッドを使用して、Excelワークブックを読み込みます。
  • Workbook.getWorksheets().get() メソッドを使用して、特定のワークシートを取得します。
  • Worksheet.setGridLinesVisible() メソッドを使用して、ワークシートに目盛線を表示します。
  • Workbook.saveToFile() メソッドを使用して、ワークブックを保存します。

Java

import com.spire.xls.ExcelVersion;
import com.spire.xls.Workbook;
import com.spire.xls.Worksheet;

public class showGridlines {

    public static void main(String[] args) {

        //Workbookクラスのオブジェクトを作成する
        Workbook workbook = new Workbook();

        //Excelワークブックを読み込む
        workbook.loadFromFile("住居費.xlsx");

        //1つ目のワークシートを取得する
        Worksheet worksheet = workbook.getWorksheets().get(0);

        //指定したワークシートに目盛線を表示する
        worksheet.setGridLinesVisible(true);

        //ドキュメントを保存する
        workbook.saveToFile("目盛線の表示.xlsx", ExcelVersion.Version2016);
    }
}

【出力されるExcelファイル】
ワークシートに目盛線を表示する

データを含むセル範囲に罫線を適用する

データがあるセル範囲にのみボーダーを適用したい場合もあります。データのあるセル範囲を Worksheet.getAllocatedRange() メソッドで取得し、CellRange.borderAround() メソッドまたは CellRange.borderInside() メソッドで外側または内側の罫線を設定すればよいのです。

  • Workbookクラスオブジェクトを作成します。
  • Workbook.loadFromFile() メソッドでExcelワークブックを読み込みます。
  • Workbook.getWorksheets().get() メソッドで特定のワークシートを取得します。
  • Worksheet.getAllocatedRange() メソッドでデータを含むセル範囲を取得します。
  • CellRange.borderAround() メソッドと CellRange.borderInside() メソッドでセル範囲に罫線を適用しています。
  • Workbook.saveToFile() メソッドでワークブックを保存します。

Java

import com.spire.xls.*;

import java.awt.*;

public class applyBordersToLocatedRange {

    public static void main(String[] args) {

        //Workbook クラスのオブジェクトを作成する
        Workbook workbook = new Workbook();

        //Excelワークブックを読み込む
        workbook.loadFromFile("住居費.xlsx");

        //1つ目のワークシートを取得する
        Worksheet worksheet = workbook.getWorksheets().get(0);

        //データを含むセル範囲を取得する
        CellRange cellRange = worksheet.getAllocatedRange();

        //外枠を範囲に適用する
        cellRange.borderAround(LineStyleType.MediumDashed, Color.black);

        //範囲に内枠を適用する
        cellRange.borderInside(LineStyleType.Thin, Color.black);

        //ドキュメントを保存する
        workbook.saveToFile("罫線の適用.xlsx", ExcelVersion.Version2016);
    }
}

【出力されるExcelファイル】
データを含むセル範囲に罫線を適用する

選択されたセル範囲に罫線を適用する

ある領域のデータを他の領域と区別するために、異なるセル範囲に異なるボーダースタイルを適用することができます。内側と外側のボーダーとは別に、セルやセル範囲の上下左右の罫線を設定することができます。次のステップでは、その方法を説明します。

  • Workbookクラスのオブジェクトを作成します。
  • Workbook.loadFromFile() メソッドでExcelワークブックを読み込みます。
  • Workbook.getWorksheets().get() メソッドで特定のワークシートを取得します。
  • Worksheet.getRange().get() メソッドでセル範囲を取得します。
  • CellRange.getBorders().getByBordersLineType() メソッドで、セル範囲からIBorderクラスのオブジェクトを取得します。
  • IBorderオブジェクトの setLineStyle()setColor() メソッドで罫線のスタイルとカラーを設定します。
  • Workbook.saveToFile() メソッドでワークブックを保存します。

Java

import com.spire.xls.*;
import com.spire.xls.core.IBorder;

import java.awt.*;

public class applyBordersToSelectedRanges {

    public static void main(String[] args) {

        //Workbookクラスのオブジェクトを作成する
        Workbook workbook = new Workbook();

        //Excelワークブックを読み込む
        workbook.loadFromFile("住居費.xlsx");

        //最初のワークシートを取得する
        Worksheet worksheet = workbook.getWorksheets().get(0);

        //セル範囲1を取得する
        CellRange range_one = worksheet.getRange().get("B3:E3");

        //この範囲の罫線を設定する
        IBorder topBorder = range_one.getBorders().getByBordersLineType(BordersLineType.EdgeTop);
        topBorder.setLineStyle(LineStyleType.Medium);
        topBorder.setColor(Color.red);
        IBorder bottomBorder = range_one.getBorders().getByBordersLineType(BordersLineType.EdgeBottom);
        bottomBorder.setLineStyle(LineStyleType.Thin);
        bottomBorder.setColor(Color.red);

        //セル範囲2を取得し、その罫線を設定する
        CellRange range_two = worksheet.getRange().get("B4:B13");
        IBorder rightBorder = range_two.getBorders().getByBordersLineType(BordersLineType.EdgeRight);
        rightBorder.setLineStyle(LineStyleType.Thin);
        rightBorder.setColor(Color.red);

        //セル範囲3を取得し、その罫線を設定する
        CellRange range_three = worksheet.getRange().get("B14:E14");
        topBorder = range_three.getBorders().getByBordersLineType(BordersLineType.EdgeTop);
        topBorder.setLineStyle(LineStyleType.Thin);
        topBorder.setColor(Color.red);
        bottomBorder = range_three.getBorders().getByBordersLineType(BordersLineType.EdgeBottom);
        bottomBorder.setLineStyle(LineStyleType.Medium);
        bottomBorder.setColor(Color.red);

        //ドキュメントを保存する
        workbook.saveToFile("罫線の設定.xlsx", ExcelVersion.Version2016);
    }
}

【出力されるExcelファイル】
選択されたセル範囲に罫線を適用する

この記事では、ワークシートのセルに目盛線と罫線を適用する方法について説明します。その他にもFree Spire.XLS for Javaには便利な機能がたくさんあります。このツールについて何か質問がある場合は、Spire.XLS Forumにアクセスしてください。

0
0
0

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
  3. You can use dark theme
What you can do with signing up
0
0