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 セルの書式設定
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 内のテキスト検索と置換
検索と置換機能は、データ管理を簡素化し、生産性を向上させる便利な手法です。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();
}
}
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();
}
}
一時ライセンスを申請する
結果ドキュメントから評価メッセージを削除したい場合、または機能制限を取り除く場合は、についてこのメールアドレスはスパムボットから保護されています。閲覧するにはJavaScriptを有効にする必要があります。にお問い合わせ、30 日間有効な一時ライセンスを取得してください。