【Excel】SaveExcelメソッド呼び出しにより、ある一定以上のデータをストリームに出力するとExcelファイルを開くことが出来ない

文書番号 : 22099     文書種別 : 不具合     最終更新日 : 2006/06/29
文書を印刷する
対象製品
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
回避方法
2006/10/15版で修正済み。
キーワード
SPRN05596

この文書は、以前は次のバグレポートIDで公開されていました : 6229