【Excel】SaveExcelメソッド呼び出しにより、ある一定以上のデータをストリームに出力するとExcelファイルを開くことが出来ない
対象製品
SPREAD for .NET 2.5J Web Forms Edition
発生環境
動作保証環境と同様。
状況
修正済み
詳細
現在、下記のコードで現象が確認されています。
Private Sub Page_Load(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles MyBase.Load
If IsPostBack Then Return
Dim ROWCOUNT As Int32 = 5000
Dim COLCOUNT As Int32 = 150
Dim row As Int32
Dim col As Int32
With FpSpread1.Sheets(0)
.FrozenColumnCount = 3
.RowCount = ROWCOUNT
.ColumnCount = COLCOUNT
.Columns(-1).CellType = New FarPoint.Web.Spread.TextCellType
.Columns(-1).Font.Name = "MS ゴシック"
.Columns(-1).Font.Size = New FontUnit(10)
For row = 0 To ROWCOUNT - 1
For col = 0 To COLCOUNT - 1
.Cells(row, col).Value = "(" & CStr(row) & "." & CStr(col) & ")"
Next
Next
End With
End Sub
Private Sub Button1_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Button1.Click
'MemoryStreamに内容を出力
Dim ms As New System.IO.MemoryStream
FpSpread1.SaveExcel(ms, FarPoint.Excel.ExcelSaveFlags.SaveBothCustomRowAndColumnHeaders)
'クライアント側に応答
Response.Clear()
Response.ContentType = "application/VND.ms-excel"
Response.AddHeader("Content-Disposition", "attachment;filename=spread.xls")
Response.BinaryWrite(ms.ToArray())
ms.Flush()
ms.Close()
Response.End()
End Sub
Private Sub FpSpread1_SaveOrLoadSheetState(ByVal sender As Object, ByVal e As FarPoint.Web.Spread.SheetViewStateEventArgs) Handles FpSpread1.SaveOrLoadSheetState
If e.IsSave Then
Session("aaa") = FpSpread1.Sheets(0).SaveViewState()
Else
FpSpread1.Sheets(0).LoadViewState(Session("aaa"))
End If
e.Handled = True
End Sub
Private Sub Page_Load(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles MyBase.Load
If IsPostBack Then Return
Dim ROWCOUNT As Int32 = 5000
Dim COLCOUNT As Int32 = 150
Dim row As Int32
Dim col As Int32
With FpSpread1.Sheets(0)
.FrozenColumnCount = 3
.RowCount = ROWCOUNT
.ColumnCount = COLCOUNT
.Columns(-1).CellType = New FarPoint.Web.Spread.TextCellType
.Columns(-1).Font.Name = "MS ゴシック"
.Columns(-1).Font.Size = New FontUnit(10)
For row = 0 To ROWCOUNT - 1
For col = 0 To COLCOUNT - 1
.Cells(row, col).Value = "(" & CStr(row) & "." & CStr(col) & ")"
Next
Next
End With
End Sub
Private Sub Button1_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Button1.Click
'MemoryStreamに内容を出力
Dim ms As New System.IO.MemoryStream
FpSpread1.SaveExcel(ms, FarPoint.Excel.ExcelSaveFlags.SaveBothCustomRowAndColumnHeaders)
'クライアント側に応答
Response.Clear()
Response.ContentType = "application/VND.ms-excel"
Response.AddHeader("Content-Disposition", "attachment;filename=spread.xls")
Response.BinaryWrite(ms.ToArray())
ms.Flush()
ms.Close()
Response.End()
End Sub
Private Sub FpSpread1_SaveOrLoadSheetState(ByVal sender As Object, ByVal e As FarPoint.Web.Spread.SheetViewStateEventArgs) Handles FpSpread1.SaveOrLoadSheetState
If e.IsSave Then
Session("aaa") = FpSpread1.Sheets(0).SaveViewState()
Else
FpSpread1.Sheets(0).LoadViewState(Session("aaa"))
End If
e.Handled = True
End Sub
回避方法
2006/10/15版で修正済み。
キーワード
SPRN05596
この文書は、以前は次のバグレポートIDで公開されていました : 6229