異なるスタイルを多くのセルに設定した場合、SaveExcelメソッドを実行したときに例外が発生することがある
対象製品
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
【手順】
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)で修正済み。