C# で Excel ファイルを ZIP に圧縮する方法

C# で Excel ファイルを ZIP に圧縮する方法

ZIP アーカイブには複数のファイルを含めることができ、ファイルのサイズを縮小するために一般的に使用されます。同時に、各ファイルは個別に圧縮されるため、Zip アーカイブ全体を圧縮または解凍することなく、ファイルを抽出して新しいファイルを追加できます。最近では、Excel (XLSX または XLS) スプレッドシートの日常業務での使用が増加しています。 Excel ファイルが非常に大きくなる場合がありますが、ZIP アーカイブに圧縮することでサイズを小さくすることができます。この記事では、複雑なコードを記述せずに C# で Excel ファイルを ZIP アーカイブに圧縮する方法について説明します。それとは別に、大きな Excel ファイルの圧縮中に 圧縮進行状況のレポート を取得する方法について説明します。

この記事では、次の点について説明します。

Excel ファイルを ZIP アーカイブに圧縮するための C# .NET API

Excel ファイルを ZIP アーカイブに圧縮するには、Aspose.ZIP for .NET を使用します。 API は、多数のアーカイブ機能で構成されています。したがって、DLL を ダウンロード するか、NuGet を使用してインストールすることができます。

Install-Package Aspose.ZIP

C# で XLS または XLSX ファイルを ZIP に追加する

ZIP アーカイブに圧縮する複数の Excel (XLSX または XLS) ファイルがあるとします。ジョブを実行するには、次のいずれかの方法を選択できます。

C# は FileStream を使用して Excel ファイルを ZIP に圧縮します

このように、FileStream クラスを使用して、Archive.CreateEntry(String, FileStream) 関数を呼び出して、ファイルを ZIP アーカイブに追加します。

FileStream を使用して Excel スプレッドシートを ZIP に圧縮する手順は次のとおりです。

  • 出力 ZIP アーカイブ用の FileStream クラスのオブジェクトを作成します。 ・圧縮するExcelファイルのFileStreamのオブジェクトを作成する。
  • Archive クラスを初期化し、ArchiveEntrySettings クラスのインスタンスを渡します。
  • Archive.CreateEntry メソッドを使用して、手順 2 で作成した FileStream オブジェクトを追加します。
  • ファイルを圧縮するには、Archive.Save メソッドを呼び出し、FileStream (手順 1 で作成) のオブジェクトと ArchiveSaveOptions のインスタンスをパラメーターとして使用します。

次のコードは、FileStream を使用して Excel ファイルを ZIP に圧縮する方法を示しています。

C# は FileInfo を使用して XLSX または XLS ファイルを ZIP に圧縮します

または、FileInfo クラスを使用してファイルを ZIP アーカイブに追加することもできます。この場合、ファイルは FileInfo クラスを使用してロードされ、Archive.CreateEntry(String, FileInfo) メソッドを呼び出して ZIP アーカイブに追加されます。

以下の手順に従ってください。

  • 出力 ZIP アーカイブ用の FileStream クラスのオブジェクトを作成します。 ・圧縮するExcelファイルのFileInfoのオブジェクトを作成します。
  • Archive クラスを初期化し、ArchiveEntrySettings クラスのインスタンスを渡します。
  • Archive.CreateEntry メソッドを使用して、手順 2 で作成した FileStream オブジェクトを追加します。
  • ファイルを圧縮するには、Archive.Save メソッドを呼び出し、FileStream (手順 1 で作成) のオブジェクトと ArchiveSaveOptions のインスタンスをパラメーターとして使用します。

次のコードは、FileInfo を使用して XLSX または XLS ファイルを ZIP に圧縮する方法を示しています。

ファイル パスを使用して Excel スプレッドシートを ZIP に圧縮します

最も簡単な方法は、Archive.CreateEntry メソッドに Excel ファイル パスを直接追加することです。

ファイル パスを使用して Excel スプレッドシートを ZIP に圧縮する手順は次のとおりです。

  • アーカイブ クラスを初期化します。
  • Archive.CreateEntry メソッドを使用して Excel ファイルを追加します。
  • データを圧縮するには、Archive.Save メソッドを呼び出し、出力ファイルの名前をパラメーターとして使用します。

次のコードは、ファイル パスを使用して Excel スプレッドシート ファイルを ZIP に圧縮する方法を示しています。

C# で圧縮の進行状況のレポートを取得する

大きな Excel ファイルの場合、圧縮プロセスが完了するまでに時間がかかる場合があります。これに対処するために、C# ZIP 圧縮ライブラリ は [CompressionProgressed] イベントを提供して、更新を継続的に投稿します。

C# で圧縮の進行状況のレポートを取得する手順は次のとおりです。

・大容量Excelファイル用にFileStreamのオブジェクトを作成する。

次のコード サンプルは、C# で圧縮の進行状況のレポートを取得する方法を示しています。

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

無料の一時ライセンス を取得して、評価制限なしで API をテストできます。

結論

この記事では、C# ZIP 圧縮ライブラリ を使用してC# で Excel ファイルを ZIP アーカイブに圧縮する方法を学びました。それとは別に、大きな Excel ファイルを圧縮しながら 圧縮進行状況レポート を取得することについて十分な知識が得られました。 C# ZIP 圧縮 API のその他の機能については、ドキュメント を参照してください。

質問する

フォーラムで質問やクエリをお知らせください。

関連項目