2013-11-09 51 views
5

NPOIを使用してExcelファイルに内容を書き込もうとしています。しかし、自動サイズ変更カラムメソッドを使用しているときに、「Parameter not valid」というエラーが発生しています。これは、膨大なデータを持つシートに対してのみ発生します。以下は私が仕事をしていたコードです。NPOI自動サイズ変更カラム

public void CloseDatabaseLogFile() 
{ 
    try 
    { 
     FileStream sw = File.Create(excelSheetPath); 

     oSheet.AutoSizeColumn(0); 
     oSheet.SetColumnWidth(1, 8400); 

     oSheet.AutoSizeColumn(2); 
     oSheet.AutoSizeColumn(3); 
     oSheet.AutoSizeColumn(4); 
     oSheet.AutoSizeColumn(5); 
     oSheet.AutoSizeColumn(6); 
     oSheet.AutoSizeColumn(7); 
     oSheet.AutoSizeColumn(8); 
     oSheet.AutoSizeColumn(9); 
     oSheet.AutoSizeColumn(10); 

     workbook.Write(sw); 
     sw.Close(); 
    } 
    catch (Exception e) 
    { 
     throw e; 
    } 
} 
+1

あなたは今までにこれを考え出した:GC.Collect()なければ

int numberOfColumns = sheet.GetRow(rowOffSet).PhysicalNumberOfCells; for (int i = 1; i <= numberOfColumns; i++) { sheet.AutoSizeColumn(i); GC.Collect(); // Add this line } 

を、私は次のエラーが発生しました。私はそれが多くの行を持つグリッドをエクスポートするときに実行されています。 System.ArgumentException:パラメータが無効です。 System.Drawing.Bitmap..ctor(Int32 width、Int32 height、PixelFormat形式) System.Drawing.Bitmap..ctor(Int32幅、Int32高さ) NPOI.SS.Util.SheetUtil.GetCellWidth(ICellセル(IS32シート、Int32列、ブール値useMergedCells) NPYI.HSSF.UserModel.HSSFSheet.AutoSizeColumn(Int32列、Boolean useMergedCells)で、 をNPOI.SS.Util.SheetUtil.GetColumnWidthに設定します。 –

答えて

4

あなたはAutoSizeプロパティの呼び出しの間GC.Collect()Garbage Collector)を使用してこの問題を解決することができます。これは最適な解決策ではありませんが、NPOI(2.0.1)はAutoSize機能に必要なBitMapオブジェクトを削除していないようです。

大規模なExcelファイルで10列の自動サイズを設定しているのと同じ問題がありました。以下の私の固定のコードを参照してください:

System.ArgumentException: Parameter is not valid. 
    at System.Drawing.Bitmap..ctor(Int32 width, Int32 height, PixelFormat format) 
    at NPOI.SS.Util.SheetUtil.GetCellWidth(ICell cell, Int32 defaultCharWidth, DataFormatter formatter, Boolean useMergedCells) 
    at NPOI.SS.Util.SheetUtil.GetColumnWidth(ISheet sheet, Int32 column, Boolean useMergedCells) 
    at NPOI.XSSF.UserModel.XSSFSheet.AutoSizeColumn(Int32 column, Boolean useMergedCells) 
関連する問題