Javaを使用してExcelで空白の行と列を削除する

プログラムでExcelワークシートから空白の行と列を簡単に削除できます。この記事では、Javaを使用してExcelで空白の行と列を削除する方法を学習します。

この記事では、次のトピックについて説明します。

Excelで空白の行と列を削除するJavaAPI

XLSXファイルから空白の行と列を削除するには、Aspose.Cells for JavaAPIを使用します。 APIのJARをダウンロードするか、MavenベースのJavaアプリケーションに次のpom.xml構成を追加してください。

<repository>
    <id>AsposeJavaAPI</id>
    <name>Aspose Java API</name>
    <url>https://repository.aspose.com/repo/</url>
</repository>
<dependency>
    <groupId>com.aspose</groupId>
    <artifactId>aspose-cells</artifactId>
    <version>21.11</version>
</dependency>

Javaを使用してExcelで空白行を削除する

以下の手順に従って、プログラムでExcelワークシートから空白行を削除できます。

  • まず、Workbookクラスを使用してExcelファイルをロードします。
  • 次に、Workbook.getWorksheets()メソッドを呼び出し、WorksheetCollectionオブジェクトのワークシートを取得します。
  • 次に、インデックス(ゼロベース)または名前のいずれかで空白行があるワークシートにアクセスします。
  • その後、Cells.deleteBlankRows()メソッドを呼び出して、アクセスしたワークシートから空白行を削除します。
  • 最後に、出力ファイルパスを指定してsave()メソッドを呼び出し、出力ファイルを保存します。

次のサンプルコードは、Javaを使用してExcelから空白行を削除する方法を示しています。

// 既存のExcelファイルをロードします。
Workbook workbook = new Workbook("C:\\Files\\Cells\\sample_rows_cols.xlsx");

// スプレッドシートでワークシートコレクションを取得します。
WorksheetCollection sheets = workbook.getWorksheets();

// インデックスによってWorksheetCollectionから最初のワークシートを取得します。
Worksheet sheet = sheets.get(0);
// または名前で。
// ワークシートシート=sheets.get( "Sheet1");

// ワークシートから空白行を削除します。
sheet.getCells().deleteBlankRows();

// 更新されたExcelファイルを保存します。
workbook.save("C:\\Files\\Cells\\output.xlsx");
Javaを使用してExcelの空白行を削除します。

Javaを使用してExcelの空白行を削除します。

同様に、Excelドキュメントのすべてのワークシートから空白行を削除できます。次のコード例に示すように、WorksheetCollectionを繰り返し処理し、各ワークシートでdeleteBlankRows()メソッドを呼び出します。

// 既存のExcelファイルを開きます。
Workbook workbook = new Workbook("C:\\Files\\Cells\\sample_rows_cols.xlsx");

// ワークシートコレクションを取得する
WorksheetCollection worksheets = workbook.getWorksheets();

// ワークシートを繰り返し処理します。
for (int i=0; i<worksheets.getCount(); i++)
{
    // ワークシートに1つずつアクセスする
    Worksheet sheet = worksheets.get(i);
  
    // ワークシートから空白行を削除します。
    sheet.getCells().deleteBlankRows();
}

// 更新されたExcelファイルを保存します。
workbook.save("C:\\Files\\Cells\\output.xlsx");

Javaを使用してExcelで空白の列を削除する

以下の手順に従って、プログラムでExcelワークシートから空白の列を削除できます。

  • まず、Workbookクラスを使用してExcelファイルをロードします。
  • 次に、Workbook.getWorksheets()メソッドを呼び出し、WorksheetCollectionオブジェクトのワークシートを取得します。
  • 次に、インデックス(ゼロベース)または名前のいずれかで空白の列があるワークシートにアクセスします。
  • その後、Cells.deleteBlankColumns()メソッドを呼び出して、アクセスしたワークシートから空白の列を削除します。
  • 最後に、出力ファイルパスを指定してsave()メソッドを呼び出し、出力ファイルを保存します。

次のサンプルコードは、Javaを使用してExcelから空白の列を削除する方法を示しています。

// 既存のExcelファイルを開きます。
Workbook workbook = new Workbook("C:\\Files\\Cells\\sample_rows_cols.xlsx");

// スプレッドシートでワークシートコレクションを取得します。
WorksheetCollection sheets = workbook.getWorksheets();

// インデックスによってWorksheetCollectionから最初のワークシートを取得します。
Worksheet sheet = sheets.get(2);

// 空白の列を削除します。
sheet.getCells().deleteBlankColumns(options);

// 更新されたExcelファイルを保存します。
workbook.save("C:\\Files\\Cells\\output_DeleteBlankColumns.xlsx");	
Javaを使用してExcelで空白の列を削除します。

Javaを使用してExcelで空白の列を削除します。

空白の行と列を削除しながら参照を自動的に更新する

空白の行または列を削除すると、数式、グラフ、および表の参照が壊れることがあります。たとえば、Sheet2のセルA1には、次の図に示すように、最初のワークシートのセルC7を参照する数式= Sheet1!C7があります。

Sheet2のセルA1は、Sheet1のセルC7の値を参照しています。

Sheet2のセルA1は、Sheet1のセルC7の値を参照しています。

Sheet1の空白行を削除すると、C7(650000)の値がセルC6に移動します。ただし、数式(= Sheet1!C7)は更新されず、セルA1にはC7の値が表示されます。この場合は550000になります。 DeleteOptions.setUpdateReferenceをtrueに設定することで、この問題を回避できます。空白行を削除しながら、参照が更新されるようにします。

以下の手順に従って、プログラムでExcelワークシートから空白行を削除しながら、参照を自動的に更新できます。

  • まず、Workbookクラスを使用してExcelファイルをロードします。
  • 次に、Workbook.getWorksheets()メソッドを呼び出し、WorksheetCollectionオブジェクトのワークシートを取得します。
  • 次に、インデックス(ゼロベース)または空白行のある名前のいずれかでワークシートにアクセスします。
  • 次に、DeleteOptionsクラスのインスタンスを作成します
  • 次に、setUpdateReferences()をtrueに呼び出します。空白行を削除しながら、他のシートの参照を更新します。
  • その後、DeleteOptionsオブジェクトを引数としてCells.deleteBlankRows()メソッドを呼び出し、アクセスしたワークシートから空白行を削除します。
  • 最後に、出力ファイルパスを指定してsave()メソッドを呼び出し、出力ファイルを保存します。

次のサンプルコードは、Excelで空白行を削除しながら参照を更新する方法を示しています。

// 既存のExcelファイルを開きます。
Workbook workbook = new Workbook("C:\\Files\\Cells\\sample_rows_cols.xlsx");

// スプレッドシートでワークシートコレクションを取得します。
WorksheetCollection sheets = workbook.getWorksheets();

// インデックスによってWorksheetCollectionから最初のワークシートを取得します。
Worksheet sheet = sheets.get(0);

// このオプションは、参照(数式、チャート)を保証します
// 空白行を削除しながら更新されます。
DeleteOptions options = new DeleteOptions();
options.setUpdateReference(true);

// ワークシートから空白行を削除します。
sheet.getCells().deleteBlankRows(options);

// 更新されたExcelファイルを保存します。
workbook.save("C:\\Files\\Cells\\output_UpdateReferencesAutomatically.xlsx");

同様に、Excelで空白の列を削除しながら、参照を更新できます。ただし、引数としてDeleteOptionsを指定してdeleteBlankColumns()メソッドを呼び出す必要があります。

無料ライセンスを取得する

無料の一時ライセンスをリクエストして、評価制限なしでAPIを試してください。

結論

この記事では、Javaを使用してExcelで行と列を削除する方法を学習しました。プログラムで行と列を削除しながら参照を更新する方法も確認しました。さらに、ドキュメントを使用して、JavaAPI用のAspose.Cellsについて詳しく知ることができます。ご不明な点がございましたら、フォーラムまでお気軽にお問い合わせください。

関連項目