異なるスタイルを多くのセルに設定した場合、SaveExcelメソッドを実行したときに例外が発生することがある

文書番号 : 39501     文書種別 : 不具合     登録日 : 2016/07/13     最終更新日 : 2016/09/05
文書を印刷する
対象製品
SPREAD for Windows Forms 8.0J
状況
修正済み
詳細
異なるスタイルを多くのセルに設定した場合、SaveExcelメソッドを実行したときに例外が発生することがあります。

【手順】
1.新規フォームにSPREADとButtonを配置します
2.下記サンプルコードをコピーし、アプリケーションを実行します
3.Buttonをクリックします
  --System.ApplicationExceptionが発生します

【サンプルコード】
  Private Sub Form1_Load(sender As Object, e As EventArgs) Handles MyBase.Load
    FpSpread1.ActiveSheet.DefaultStyle.BackColor = System.Drawing.Color.White
    FpSpread1.ActiveSheet.DefaultStyle.VerticalAlignment = FarPoint.Win.Spread.CellVerticalAlignment.Center

    FpSpread1.ActiveSheet.RowCount = 300
    FpSpread1.ActiveSheet.ColumnCount = 20

    For column As Integer = 0 To Me.FpSpread1.ActiveSheet.ColumnCount - 1
      For row As Integer = 0 To Me.FpSpread1.ActiveSheet.RowCount - 1
        FpSpread1.ActiveSheet.Cells(row, column).CellType = New FarPoint.Win.Spread.CellType.CheckBoxCellType()
      Next
    Next
  End Sub

  Private Sub Button1_Click(sender As Object, e As EventArgs) Handles Button1.Click
    For i As Integer = 0 To FpSpread1.Sheets.Count - 1
      For column As Integer = 0 To FpSpread1.Sheets(i).ColumnCount - 1
        For row As Integer = 0 To FpSpread1.Sheets(i).RowCount - 1
          FpSpread1.Sheets(i).Cells(row, column).ForeColor = System.Drawing.Color.FromArgb(Math.Max(0, 255 - row - column), FpSpread1.Sheets(i).DefaultStyle.ForeColor.R, FpSpread1.Sheets(i).DefaultStyle.ForeColor.G, FpSpread1.Sheets(i).DefaultStyle.ForeColor.B)
        Next
      Next
    Next

    FpSpread1.SaveExcel("Book1.xls", FarPoint.Excel.ExcelSaveFlags.SaveCustomColumnHeaders)

    For i As Integer = 0 To FpSpread1.Sheets.Count - 1
      For column As Integer = 0 To FpSpread1.Sheets(i).ColumnCount - 1
        For row As Integer = 0 To FpSpread1.Sheets(i).RowCount - 1
          FpSpread1.Sheets(i).Cells(row, column).ResetForeColor()
        Next
      Next
    Next
  End Sub
回避方法
Service Pack 3(v8.0.3505.2008)で修正済み。