Excel ファイルは、データ管理、情報分析、レポート共有において、企業や個人、組織にとって欠かせないツールとなっています。しかし、Excel ドキュメントを手動で編集するのは、時間がかかるだけでなく、ミスが発生しやすい作業です。幸いにも、Spire.XLS for Java ライブラリを使用すれば、これらの作業を簡単に自動化でき、効率を向上させ、エラーを減らすことができます。 この記事では、Spire.XLS を使用して Java で Excel ドキュメントを編集する方法を包括的に解説し、この強力なスキルを習得するお手伝いをします。 Java での Excel ファイルの読み書き Java での Excel セルの書式設定 Java での Excel 内のテキスト検索と置換 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 日間有効な一時ライセンスを取得してください。