チュートリアル

簡単にライブラリーを使用するためのチュートリアルコレクション

チュートリアル»Java»Spire.XLS for Java»文書操作»Java:Excel ワークブックの編集
2025-01-06

Java:Excel ワークブックの編集

Excel ファイルは、データ管理、情報分析、レポート共有において、企業や個人、組織にとって欠かせないツールとなっています。しかし、Excel ドキュメントを手動で編集するのは、時間がかかるだけでなく、ミスが発生しやすい作業です。幸いにも、Spire.XLS for Java ライブラリを使用すれば、これらの作業を簡単に自動化でき、効率を向上させ、エラーを減らすことができます。

この記事では、Spire.XLS を使用して Java で Excel ドキュメントを編集する方法を包括的に解説し、この強力なスキルを習得するお手伝いをします。

Spire.XLS for Java をインストールします

まず、Spire. XLS for Java を Java プロジェクトに追加する必要があります。JAR ファイルは、このリンクからダウンロードできます。Maven を使用する場合は、次のコードをプロジェクトの pom.xml ファイルに追加する必要があります。

<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</artifactId>
        <version>14.12.0</version>
    </dependency>
</dependencies>

Java での Excel ファイルの読み書き

Java で Excel ファイルを扱う際に最も一般的なタスクの一つが、データの読み取りと書き込みです。Spire.XLS for Java は、CellRange.getValue() および CellRange.setValue() メソッドを提供し、セルの値を簡単に取得したり設定したりできます。

Java を使って Excel ファイルを読み書きする手順は以下の通りです:

  • Workbook オブジェクトを作成します。
  • 指定したファイルパスから Excel ファイルを読み込みます。
  • Workbook.getWorksheets().get() メソッドを使用して特定のワークシートにアクセスします。
  • Worksheet.getCellRange() メソッドを用いて特定のセルを取得します。
  • CellRange.getValue() でセルの値を取得し、CellRange.setValue() で更新します。
  • ワークブックを新しい Excel ファイルに保存します。
  • Java
import com.spire.xls.CellRange;
import com.spire.xls.ExcelVersion;
import com.spire.xls.Workbook;
import com.spire.xls.Worksheet;

public class ReadExcelData {

    public static void main(String[] args) {

        // Workbookオブジェクトを作成
        Workbook workbook = new Workbook();

        // Excelファイルを読み込む
        workbook.loadFromFile("Sample.xlsx");

        // 特定のワークシートを取得
        Worksheet worksheet = workbook.getWorksheets().get(0);

        // 特定のセルを取得
        CellRange cell = worksheet.getCellRange("A1");

        // セルの値を読み取る
        String text = cell.getValue();

        // セルの値が"Department"かどうかを確認
        if (text.equals("出身地"))
        {
            // セルの値を更新
            cell.setValue("居住地");
        }

        // 別のファイルにワークブックを保存
        workbook.saveToFile("output/セル値の変更.xlsx", ExcelVersion.Version2016);

        // リソースを解放
        workbook.dispose();
    }
}

 Java で Excel のセルの値を設定

Java での Excel セルの書式設定

Excel ドキュメントに書式設定を施すことは、プロフェッショナルな外観のレポートを作成する上で重要です。Spire.XLS for Java は、CellRange クラス内の API を利用して、フォントスタイル、色、セル背景、配置、および行の高さや列の幅を調整できます。

Excel セルにスタイルや書式を適用する手順は以下の通りです:

  • Workbook オブジェクトを作成します。
  • 指定したファイルパスから Excel ファイルを読み込みます。
  • Workbook.getWorksheets().get() メソッドを使用して特定のワークシートにアクセスします。
  • Worksheet.getAllocatedRange() メソッドで割り当てられたセル範囲を取得します。
  • CellRange.getRows()[rowIndex] を用いて特定の行を選択し、セルの背景色、テキストの色、テキストの配置、および行の高さを CellRange オブジェクトのメソッドでカスタマイズします。
  • CellRange.getColumns()[columnIndex] を使用して特定の列を選択し、setColumnWidth() メソッドで列幅を設定します。
  • ワークブックを新しい Excel ファイルに保存します。
  • Java
import com.spire.xls.*;

import java.awt.*;

public class ApplyFormattingExcel {

    public static void main(String[] args) {

        // Workbook オブジェクトを作成
        Workbook workbook = new Workbook();

        // Excel ファイルをロード
        workbook.loadFromFile("Sample.xlsx");

        // 特定のワークシートを取得
        Worksheet worksheet = workbook.getWorksheets().get(0);

        // ワークシートからすべての範囲を取得
        CellRange allocatedRange = worksheet.getAllocatedRange();

        // 行を繰り返し処理
        for (int rowNum = 0; rowNum < allocatedRange.getRowCount(); rowNum++) {
            if (rowNum == 0) {

                // ヘッダー行にセルの色を適用
                allocatedRange.getRows()[rowNum].getStyle().setColor(Color.black);

                // ヘッダー行のフォントの色を変更
                allocatedRange.getRows()[rowNum].getStyle().getFont().setColor(Color.white);
            }

            // 他の行に交互に色を適用
            else if (rowNum % 2 == 1) {
                allocatedRange.getRows()[rowNum].getStyle().setColor(Color.lightGray);
            }
            else {
                allocatedRange.getRows()[rowNum].getStyle().setColor(Color.white);
            }

            // テキストを中央揃え
            allocatedRange.getRows()[rowNum].setHorizontalAlignment(HorizontalAlignType.Center);
            allocatedRange.getRows()[rowNum].setVerticalAlignment(VerticalAlignType.Center);

            // 行の高さを設定
            allocatedRange.getRows()[rowNum].setRowHeight(20);
        }

        // 列を繰り返し処理
        for (int columnNum = 0; columnNum < allocatedRange.getColumnCount(); columnNum++) {

            // 列の幅を設定
            if (columnNum > 0) {
                allocatedRange.getColumns()[columnNum].setColumnWidth(15);
            }
        }

        // 内枠を追加する
        allocatedRange.borderInside();
        allocatedRange.getBorders().setColor(Color.WHITE);

        // ワークブックを別名で保存
        workbook.saveToFile("output/Excelの書式設定.xlsx", ExcelVersion.Version2016);

        // リソースを解放
        workbook.dispose();
    }
}

 Java で Excel ワークシートに書式を適用

Java での Excel 内のテキスト検索と置換

検索と置換機能は、データ管理を簡素化し、生産性を向上させる便利な手法です。Spire.XLS for Java を使用すれば、Worksheet.findString() メソッドで特定の文字列を含むセルを迅速に見つけ、CellRange.setValue() メソッドでその値を置き換えることができます。

Java を使って Excel 内のテキストを検索して置換する手順は以下の通りです:

  • Workbook オブジェクトを作成します。
  • 指定したファイルパスから Excel ファイルを読み込みます。
  • Workbook.getWorksheets().get() メソッドを使用して特定のワークシートにアクセスします。
  • Worksheet.findString() メソッドで指定した文字列を含むセルを見つけます。
  • CellRange.setValue() メソッドでセルの値を更新します。
  • ワークブックを別の Excel ファイルに保存します。
  • Java
import com.spire.xls.CellRange;
import com.spire.xls.ExcelVersion;
import com.spire.xls.Workbook;
import com.spire.xls.Worksheet;

public class FindAndReplaceExcel {

    public static void main(String[] args) {

        // Workbook オブジェクトを作成
        Workbook workbook = new Workbook();

        // Excel ファイルをロード
        workbook.loadFromFile("Sample.xlsx");

        // 特定のワークシートを取得
        Worksheet worksheet = workbook.getWorksheets().get(0);

        // 置換用の部署名を定義した配列
        String[] items = new String[] { "No", "Name", "Age", "Occupation", "Birthplace", "Interests" };

        // Excel シート内で置換されるプレースホルダーの配列を定義
        String[] placeholders = new String[] { "番号", "名前", "年齢", "職業", "出身地", "趣味" };

        // プレースホルダー文字列を繰り返し処理
        for (int i = 0; i < placeholders.length; i++)
        {
            // 現在のプレースホルダー文字列を含むセルを検索
            CellRange cell = worksheet.findString(placeholders[i], false, false);

            // 見つかったセルのテキストを対応する部署名に置換
            cell.setValue(items[i]);
        }

        // ワークブックを別名で保存
        workbook.saveToFile("output/Excelの検索と置換.xlsx", ExcelVersion.Version2016);

        // リソースを解放
        workbook.dispose();
    }
}

Spire.XLS による Excel セルの値の検索と置換

Java での Excel に数式やグラフを追加する

基本的なファイル操作に加え、Spire.XLS for Java は Excel ファイルを扱う高度な手法も提供します。これにより、複雑なタスクを自動化し、計算を実行し、動的なレポートを作成することが可能です。

Java を使用して Excel に数式を追加し、グラフを作成する手順は以下の通りです:

  • Workbook オブジェクトを作成します。
  • 指定したファイルパスから Excel ファイルを読み込みます。
  • Workbook.getWorksheets().get() メソッドを使用して特定のワークシートにアクセスします。
  • Worksheet.getRange().get() メソッドで特定のセルを選択します。
  • CellRange.setFormula() メソッドでセルに数式を挿入します。
  • Worksheet.getCharts().add() メソッドを用いてワークシートにカラムチャートを追加します。
  • グラフのデータ範囲、位置、タイトル、およびその他の属性を Chart オブジェクトのメソッドで設定します。
  • ワークブックを別の Excel ファイルに保存します。
  • Java
import com.spire.xls.*;

public class AddFormulaAndChartExcel {

    public static void main(String[] args) {

        // Workbook オブジェクトを作成
        Workbook workbook = new Workbook();

        // Excel ファイルをロード
        workbook.loadFromFile("Sample.xlsx");

        // 特定のワークシートを取得
        Worksheet worksheet = workbook.getWorksheets().get(0);

        // ワークシートからすべての範囲を取得
        CellRange allocatedRange = worksheet.getAllocatedRange();

        // 行を繰り返し処理
        for (int rowNum = 0; rowNum < allocatedRange.getRowCount(); rowNum++) {
            if (rowNum == 0) {
                // E1セルにテキストを記入
                worksheet.getRange().get(rowNum + 1, 5).setText("月間売上高");

                // セルにスタイルを適用
                worksheet.getRange().get(rowNum + 1, 5).getStyle().getFont().isBold(true);
                worksheet.getRange().get(rowNum + 1, 5).getStyle().setHorizontalAlignment(HorizontalAlignType.Left);
            } else {
                // E2からE9までのセルに数式を追加
                worksheet.getRange().get(rowNum + 1, 5).setFormula("=SUM(B" + (rowNum + 1) + ":C" + (rowNum + 1) + ")");
            }
            // 列の幅を自動調整
            worksheet.autoFitColumn(6);
        }

        // クラスター化縦棒グラフを追加
        Chart chart = worksheet.getCharts().add(ExcelChartType.ColumnClustered);

        // グラフのデータ範囲を設定
        chart.setDataRange(worksheet.getCellRange("A1:C9"));
        chart.setSeriesDataFromRange(false);

        // グラフの位置を設定
        chart.setLeftColumn(1);
        chart.setTopRow(11);
        chart.setRightColumn(8);
        chart.setBottomRow(22);

        // グラフタイトルを設定およびフォーマット
        chart.setChartTitle("販売動向");
        chart.getChartTitleArea().setSize(12);
        chart.getChartTitleArea().isBold(true);

        // ワークブックを別名で保存
        workbook.saveToFile("output/Excelに数式とグラフを追加.xlsx", ExcelVersion.Version2016);

        // リソースを解放
        workbook.dispose();
    }
}

Java で Excel に数式とグラフを追加

一時ライセンスを申請する

結果ドキュメントから評価メッセージを削除したい場合、または機能制限を取り除く場合は、についてこのメールアドレスはスパムボットから保護されています。閲覧するにはJavaScriptを有効にする必要があります。にお問い合わせ、30 日間有効な一時ライセンスを取得してください。

Read 48 times