6

現在、EPPlus を使用してデータを Excel にエクスポートしています。少量のデータに対して見事に機能します。ただし、大量のデータをエクスポートするには大量のメモリを消費します。

OOXML や Microsoft Open XML SDK 2.5 について簡単に説明しました。データを Excel にエクスポートするために使用できるかどうかわかりません。

サードパーティのプロバイダー ライブラリもあります。

非常に大量のデータを適切なパフォーマンスでエクスポートし、多くのスペースを必要としない (理想的には、エクスポートするデータ量の 3 倍未満) のジョブを適切に実行できるソリューションは何だろうか。

更新: いくつかの追加要件...「色」情報 (CSV を除く) をエクスポートできるようにする必要があり、EPPlus ライブラリのように管理しやすいもの (XML 形式自体を除く) が必要です。別のスレッドを見つけたところ、私が試している Aspose または SpreadsheetGear が推奨されています。私は最初の答えをOKとしました。ありがとうございます。

更新 2016-02-16情報として... 私たちは現在、SpreadSheetGear を使用しており、気に入っています。一度サポートが必要でしたが、それは素晴らしかったです。

ありがとう

4

4 に答える 4

4

EPPlus は、データを Excel にエクスポートします。少量のデータに対して見事に機能します。ただし、大量のデータをエクスポートするには大量のメモリを消費します。

数年前、OpenXML ライブラリを使用してデータを Excel にエクスポートする C# ライブラリを作成しましたが、同じ状況に直面しました。

約 30,000 行以上になり始めるまでは問題なく機能していましたが、その時点で、ライブラリはすべてのデータをキャッシュしようとし、メモリが不足していました。

ただし、OpenXmlWriterクラスを使用して問題を修正しました。これにより、(最初にキャッシュせずに) データが Excel ファイルに直接書き込まれ、メモリ効率が大幅に向上します。

そして、ご覧のとおり、このライブラリは信じられないほど簡単に使用できます。1 つのCreateExcelDocument関数を呼び出してDataSetDataTableまたはを渡すだけList<>です。

// Step 1: Create a DataSet, and put some sample data in it
DataSet ds = CreateSampleData();

// Step 2: Create the Excel .xlsx file
try
{
    string excelFilename = "C:\\Sample.xlsx";
    CreateExcelFile.CreateExcelDocument(ds, excelFilename);
}
catch (Exception ex)
{ 
    MessageBox.Show("Couldn't create Excel file.\r\nException: " + ex.Message);
    return;
}

C# および VB.Net の完全なソース コードは、次の場所からダウンロードできます。

マイクの Excel へのエクスポート

幸運を !

于 2015-06-11T09:33:17.743 に答える