Excel ファイルは一般的な表計算フォーマットであり、ユーザーはデータを表に並べたり、分析したり、表示したりすることができる。プログラムで Excel ファイルを操作できることは、Excel の機能を自動化したり、ソフトウェアに統合したりするのに便利である。これは、大量のデータセットや複雑な計算、動的にデータを生成/更新する場合に特に有益です。この記事では、Spire.XLS for Java を使用して、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.3.2</version>
</dependency>
</dependencies>
Java で Excel ドキュメントを作成する
Spire.XLS for Java は、Excel ドキュメントの作成や編集に使用できる様々なクラスやインターフェースを提供しています。以下は、この記事に関係する重要なクラス、プロパティ、メソッドのリストです。
項目 | 説明 |
Workbook クラス | Excel のワークブックモデルを表します。 |
Workbook.getWorksheets().add() メソッド | ワークブックにワークシートを追加します。 |
Workbook.saveToFile() メソッド | ワークブックを Excel ドキュメントに保存します。 |
Worksheet クラス | ワークブック内のワークシートを表します。 |
Worksheet.getRange() メソッド | ワークシートから特定のセルまたはセル範囲を取得します。 |
Worksheet.insertArray() メソッド | 配列からデータをワークシートにインポートします。 |
CellRange クラス | ワークシート内のセルまたはセル範囲を表します。 |
CellRange.setValue() メソッド | セルの値を設定します。 |
CellRange.getValue() メソッド | セルの値を取得します。 |
以下は、Spire.XLS for Java を使用して Excel ドキュメントを新規作成する手順です。
- Workbook オブジェクトを作成します。
- Workbook.getWorksheets().add() メソッドを使用してワークシートを追加します。
- Worksheet.getRange.setValue() メソッドを使用して、特定のセルにデータを書き込みます。
- Worksheet.insertArray() メソッドを使用して、配列からワークシートにデータをインポートします。
- Workbook.saveToFile() メソッドを使用して、ワークブックを Excel ドキュメントに保存します。
- Java
import com.spire.xls.*;
public class CreateExcelWorkbook {
public static void main(String[] args) {
//Workbookオブジェクトを作成
Workbook wb = new Workbook();
//デフォルトのワークシートを削除
wb.getWorksheets().clear();
//ワークシートを追加し、名前を「Employee」とする
Worksheet sheet = wb.getWorksheets().add("社員");
//A1からG1までのセルを結合
sheet.getRange().get("A1:G1").merge();
//A1にデータを書き込み、書式を適用
sheet.getRange().get("A1").setValue("華宇汽車の社員の基本情報");
sheet.getRange().get("A1").setHorizontalAlignment(HorizontalAlignType.Center);
sheet.getRange().get("A1").setVerticalAlignment(VerticalAlignType.Center);
sheet.getRange().get("A1").getStyle().getFont().isBold(true);
sheet.getRange().get("A1").getStyle().getFont().setSize(13);
//最初の行の行の高さを設定
sheet.setRowHeight(1,30);
//二次元配列を作成
String[][] twoDimensionalArray = new String[][]{
{"名前", "性別", "生年月日", "学歴", "連絡先", "ポジション", "ID"},
{"アレン", "男性", "1990-02-10", "学士", "24756854", "整備士", "0021"},
{"パトリック", "男性", "1985-06-08", "修士", "59863247", "整備士", "0022"},
{"ジェナ", "女性", "1989-11-25", "学士", "79540352", "営業", "0023"},
{"トミー", "男性", "1988-04-16", "修士", "52014060", "整備士", "0024"},
{"クリスティーナ", "女性", "1998-01-21", "学士", "35401489", "人事", "0025"}
};
//DataTableからデータをワークシートにインポート
sheet.insertArray(twoDimensionalArray,2,1);
//範囲の行の高さを設定
sheet.getRange().get("A2:G7").setRowHeight(15);
//列の幅を設定
sheet.setColumnWidth(2,15);
sheet.setColumnWidth(3,21);
sheet.setColumnWidth(4,15);
//範囲の境界線スタイルを設定
sheet.getRange().get("A2:G7").borderAround(LineStyleType.Medium);
sheet.getRange().get("A2:G7").borderInside(LineStyleType.Thin);
sheet.getRange().get("A2:G2").borderAround(LineStyleType.Medium);
sheet.getRange().get("A2:G7").getBorders().setKnownColor(ExcelColors.Black);
// .xlsxファイルに保存
wb.saveToFile("output/新しいワークブック.xlsx", FileFormat.Version2016);
wb.dispose();
}
}
Java でワークシートのデータを読む
CellRange.getValue() メソッドは、セルの数値またはテキスト値を文字列として返します。ワークシート全体またはセル範囲のデータを取得するには、その中のセルをループします。以下は、Spire.XLS for Java を使用してワークシートのデータを取得する手順です。
- Workbook オブジェクトを作成します。
- Workbook.loadFromFile() メソッドを使用して Excel ドキュメントを読み込みます。
- Workbook.getWorksheets().get(index) メソッドを使用して、特定のワークシートを取得します。
- Worksheet.getAllocatedRange() メソッドを使用して、データを含むセル範囲を取得します。
- 行と列を反復処理して範囲内のセルを取得し、CellRange.getValue() メソッドを使用して各セルの値を返す。
- Java
import com.spire.xls.CellRange;
import com.spire.xls.Workbook;
import com.spire.xls.Worksheet;
public class ReadSheetData {
public static void main(String[] args) {
//Workbookオブジェクトを作成
Workbook wb = new Workbook();
//既存のExcelファイルを読み込む
wb.loadFromFile("output/新しいワークブック.xlsx");
//最初のワークシートを取得
Worksheet sheet = wb.getWorksheets().get(0);
//データが含まれるセル範囲を取得
CellRange locatedRange = sheet.getAllocatedRange();
//行を反復処理
for (int i = 0; i < locatedRange.getRows().length; i++) {
//列を反復処理
for (int j = 0; j < locatedRange.getColumnCount(); j++) {
//特定のセルのデータを取得
System.out.print(locatedRange.get(i + 1, j + 1).getValue() + " ");
}
System.out.println();
}
wb.dispose();
}
}
Java で Excel ドキュメントを更新する
特定のセルの値を変更するには、Worksheet.getRange().setValue() メソッドを使用してセルの値を再設定します。以下はその詳細な手順です。
- Workbook オブジェクトを作成します。
- Workbook.LoadFromFile() メソッドを使用して Excel ドキュメントを読み込みます。
- Workbook.Worksheets[index] プロパティで特定のワークシートを取得します。
- Worksheet.Range.Value プロパティを使って特定のセルの値を変更します。
- Workbook.SaveToFile() メソッドを使用して、ワークブックを Excel ファイルに保存します。
- Java
import com.spire.xls.ExcelVersion;
import com.spire.xls.Workbook;
import com.spire.xls.Worksheet;
public class UpdateCellValue {
public static void main(String[] args) {
//Workbookオブジェクトを作成
Workbook wb = new Workbook();
//既存のExcelファイルを読み込む
wb.loadFromFile("output/新しいワークブック.xlsx");
//最初のワークシートを取得
Worksheet sheet = wb.getWorksheets().get(0);
//特定のセルの値を変更
sheet.getRange().get("A1").setValue("更新された値");
//ファイルに保存
wb.saveToFile("output/セル値の更新.xlsx", ExcelVersion.Version2016);
wb.dispose();
}
}
一時ライセンスを申請する
結果ドキュメントから評価メッセージを削除したい場合、または機能制限を取り除く場合は、についてこのメールアドレスはスパムボットから保護されています。閲覧するにはJavaScriptを有効にする必要があります。にお問い合わせ、30 日間有効な一時ライセンスを取得してください。