4

codeplex Excelpackage を使用して Excel ファイル (2007) を書きたいのですが、Excel ファイルの書き込みに時間がかかります。データソースを受け入れる方法が見つかりませんでした。

私のコードの一部:

var newFile = new FileInfo(GlobalVariables.Compare2007Path);

using (var excelpackage = new ExcelPackage(newFile))
{
  var myWorkbook = excelpackage.Workbook;
  myWorkbook.Worksheets.Add("sheetname");

  var xlWorkSheet = xlWorkBook.Worksheets["sheetname"];

  //loop the data and fill the columns
  var rowCount = 2;
  foreach (var compare in objCompare)
  {
    xlWorkSheet.Cell(rowCount, 1).Value = compare.adserverIdSite.ToString();
    xlWorkSheet.Cell(rowCount, 2).Value = compare.site;
    xlWorkSheet.Cell(rowCount, 3).Value = compare.adserverIdZone.ToString();
    xlWorkSheet.Cell(rowCount, 4).Value = compare.zone;
    xlWorkSheet.Cell(rowCount, 5).Value = compare.position;
    xlWorkSheet.Cell(rowCount, 6).Value = compare.weekday;
    xlWorkSheet.Cell(rowCount, 7).Value = compare.oldimps.ToString();
    xlWorkSheet.Cell(rowCount, 8).Value = compare.olduu.ToString();
    xlWorkSheet.Cell(rowCount, 9).Value = compare.oldimpsuu.ToString();
    xlWorkSheet.Cell(rowCount, 10).Value = compare.newimps.ToString();
    xlWorkSheet.Cell(rowCount, 11).Value = compare.newuu.ToString();
    xlWorkSheet.Cell(rowCount, 12).Value = compare.newimpsuu.ToString();
    xlWorkSheet.Cell(rowCount, 13).Value = compare.diffimps.ToString();
    xlWorkSheet.Cell(rowCount, 14).Value = compare.diffimpsperc.ToString();
    rowCount++;
  }
  excelpackage.Save();
}

または、excelpackage 以外のオプションはありますか。

4

3 に答える 3

7

Excel パッケージのパフォーマンスに対する解決策を見つけました。これは、excelPackage に適用する必要があるパッチです。パッチはここにあります。ID : 1042 または更新 1233 (そのパッチの追加機能) を探します。

このパッチを使用すると、空のシートにデータテーブルを追加できます。14 列の 98000 レコードの追加は数秒で完了しました。

于 2009-12-22T13:42:04.117 に答える
1

SpreadsheetGear for .NETがそれを行います。

SpreadsheetGear と共にインストールされる SpreadsheetGear Explorer サンプル ソリューション (C# または VB 用) を参照してください。[Advanced] -> [Performance] の下にサンプルがあり、セルをすばやく作成する方法を示しています。私のマシン (Intel QX6850 をオーバークロック) では、50,000 行 x 4 列を 0.05 秒で作成します。

上記の SpreadsheetGear コンポーネントと SpreadsheetGear Explorer サンプルをインストールする無料試用版をここからダウンロードできます。

免責事項: 私は SpreadsheetGear LLC を所有しています

于 2009-12-21T15:58:50.033 に答える
0

Excel ファイルの作成にSmartXLを使用 (および購入)しました。無料ではありませんが、多くの時間を節約できました。30日間無料でお試しいただけます。

于 2009-12-21T13:42:30.303 に答える