この記事では、C#を使用してExcelファイルの空白の行と列を削除する方法について説明します。また、空白の行と列を削除しながら、参照を自動的に更新する方法(数式、グラフ、表で使用)についても説明します。
空白の行と列を削除するC#API
Aspose.Cells for .NETは、.NETアプリケーション内からExcelファイルを作成および処理できる有名なスプレッドシート操作APIです。 APIを使用すると、数行のコードでExcelファイルの空白の行と列を削除できます。 APIのバイナリをダウンロードするか、NuGetを使用してインストールすることができます。
PM> Install-Package Aspose.Cells
C#を使用してExcelで空白行を削除する
以下は、C#を使用してExcelのすべての空白行を削除する手順です。
- Workbookオブジェクトを使用してExcelファイルを開きます。
- 空白行のあるワークシートにアクセスします。ワークシートには、インデックス(ゼロベース)または名前のいずれかでアクセスできます。
- Cells.DeleteBlankRows()メソッドを呼び出して、データを含まないすべての空白行を削除します。
次のサンプルコードは、C#を使用してExcelで空白行を削除する方法を示しています。
using Aspose.Cells;
// 既存のExcelファイルを開きます。
Workbook wb = new Workbook("SampleInput.xlsx");
// スプレッドシートでワークシートコレクションを取得します。
WorksheetCollection sheets = wb.Worksheets;
// インデックスによってWorksheetCollectionから最初のワークシートを取得します。
Worksheet sheet = sheets[0];
// または名前で。
// ワークシートシート=sheets["Sheet1"];
// ワークシートから空白行を削除します。
sheet.Cells.DeleteBlankRows();
// Excelファイルを保存します。
wb.Save("SampleOutput.xlsx");
Cells.DeleteBlankRowsメソッドは、何らかのフォーマットが適用されている場合でも、空白行を削除することに注意してください。また、データの下にあるフォーマット済みの空白行も削除されます。
Excelドキュメントのすべてのワークシートから空白行を削除する場合は、次のコードに示すように、WorksheetCollectionを繰り返し処理し、各ワークシートでDeleteBlankRowsメソッドを呼び出します。
// 既存のExcelファイルを開きます。
Workbook workbook = new Workbook("SampleInput.xlsx");
// ワークシートを繰り返し処理します。
foreach (Worksheet sheet in workbook.Worksheets)
{
// ワークシートから空白行を削除します。
sheet.Cells.DeleteBlankRows();
}
// Excelファイルを保存します。
workbook.Save("SampleOutput.xlsx");
空白行を削除しながら参照を自動的に更新する
空白行を削除すると、数式、グラフ、表の参照が壊れることがあります。たとえば、2番目のワークシートのセルB2には、次の図に示すように、最初のワークシートのセルC3を参照する数式= Sheet1!C3があります。
Sheet1の空白行を削除すると、値lima@gmail.comがセルC1に移動します。ただし、数式(= Sheet1!C3)は更新されず、セルB2には以下に示すように無効な値が含まれます。
DeleteOptions.UpdateReferenceプロパティを使用してこの問題を回避し、trueに設定することができます。空白行を削除しながら、参照が更新されるようにします。次のサンプルコードは、DeleteOptions.UpdateReferenceプロパティの使用方法を示しています。
// 既存のExcelファイルを開きます。
Workbook wb = new Workbook("SampleInput.xlsx");
// スプレッドシートでワークシートコレクションを取得します。
WorksheetCollection sheets = wb.Worksheets;
// インデックスによってWorksheetCollectionから最初のワークシートを取得します。
Worksheet sheet = sheets[0];
// このオプションは、参照(数式、チャート)を保証します
// 空白行を削除しながら更新されます。
DeleteOptions options = new DeleteOptions();
options.UpdateReference = true;
// ワークシートから空白行を削除します。
sheet.Cells.DeleteBlankRows(options);
// Excelファイルを保存します。
wb.Save("SampleOutput.xlsx");
次の画像に示すように、数式が更新され、セルB2に有効な値が含まれています。
C#を使用してExcelで空白の列を削除する
空白の列を削除する手順は、空白の行を削除する手順と同じです。 Cells.DeleteBlankColumnsメソッドを使用して、データを含まないすべての空白の列を削除します。次のサンプルコードは、C#で空白の行と列を削除する方法を示しています。
// 既存のExcelファイルを開きます。
Workbook wb = new Workbook("SampleInput.xlsx");
// スプレッドシートでワークシートコレクションを取得します。
WorksheetCollection sheets = wb.Worksheets;
// インデックスによってWorksheetCollectionから最初のワークシートを取得します。
Worksheet sheet = sheets[0];
// このオプションは、参照(数式、チャート)を保証します
// 空白の行と列を削除しながら更新されます。
DeleteOptions options = new DeleteOptions();
options.UpdateReference = true;
// 空白の行と列を削除します。
sheet.Cells.DeleteBlankRows(options);
sheet.Cells.DeleteBlankColumns(options);
// ワークブックの数式を計算する
wb.CalculateFormula();
// Excelファイルを保存します。
wb.Save("SampleOutput.xlsx");
結論
この記事では、C#を使用してExcelファイルの空白の行と列を削除する方法を学習しました。さらに、空白の行と列を削除しながら、参照(数式、グラフ、表で使用される)を自動的に更新する方法を学習しました。詳細については、Aspose.Cellsfor.NETのドキュメントを確認してください。ご不明な点がございましたら、サポートフォーラムまでお気軽に投稿してください。数時間以内にお答えします。