出力ファイルをExcelでオープン・保存し、再度読み込むと不要な列が増える

文書番号 : 39528     文書種別 : 不具合     登録日 : 2016/08/19     最終更新日 : 2016/09/09
文書を印刷する
対象製品
SPREAD for ASP.NET 8.0J
状況
修正済み
詳細
SPREADで出力したExcelファイルをMicrosoft Excelでオープン・保存し、再度読み込むと不要な列が増える現象が発生します。

【再現手順】
1.新規WebフォームにSPREADおよび二つのボタンを配置し、下記の再現コードを貼り付ける
2.プロジェクトを起動する
3.ボタン1を押下してExcelエクスポートを行う
4.エクスポートしたファイルをMicrosoft Excelでオープンし、何もせず上書き保存する
5.上書き保存したファイルをプロジェクトフォルダに配置し、ボタン2を押下してSPREADに読み込む
--- 起動時と比較して、不要な列が一列増える

【再現コード】
------------------------------------
Webフォームクラス
------------------------------------
Protected Sub Page_Load(sender As Object, e As EventArgs)
  If Page.IsPostBack Then
    Return
  End If
  For i As var = 0 To FpSpread1.ActiveSheetView.ColumnCount - 1
    FpSpread1.ActiveSheetView.ColumnHeader.Cells(0, i).Value = String.Format("列{0}", i + 1)
  Next
  For i As var = 0 To FpSpread1.ActiveSheetView.RowCount - 1
    For j As var = 0 To FpSpread1.ActiveSheetView.ColumnCount - 1
      FpSpread1.ActiveSheetView.SetValue(i, j, String.Format("R{0}C{1}", i, j))
    Next
  Next
End Sub

Protected Sub Button1_Click(sender As Object, e As EventArgs)
  FpSpread1.SaveExcelToResponse("test1.xlsx", FarPoint.Excel.ExcelSaveFlags.SaveCustomColumnHeaders Or FarPoint.Excel.ExcelSaveFlags.UseOOXMLFormat)
End Sub

Protected Sub Button2_Click(sender As Object, e As EventArgs)
  FpSpread1.ActiveSheetView.Reset()
  FpSpread1.OpenExcel(MapPath("test2.xlsx"), FarPoint.Excel.ExcelOpenFlags.ColumnHeaders)
End Sub
回避方法
Service Pack 3(v8.0.4004.2010)で修正済み。
Service Pack 3(v8.0.4004.2010)より前のバージョンでは次の回避方法が有効です。
------------------------------------------

データの持つ列数を取得しColumnCountに設定することで現象の回避が可能です。

【現象再現コードへの回避策適用例】
------------------------------------------------
Protected Sub Button2_Click(sender As Object, e As EventArgs)
  FpSpread1.ActiveSheetView.Reset()
  FpSpread1.OpenExcel(MapPath("test2.xlsx"), FarPoint.Excel.ExcelOpenFlags.ColumnHeaders)

  ' データを持つ列数を取得しColumnCountに設定
  FpSpread1.ActiveSheetView.ColumnCount = FpSpread1.ActiveSheetView.NonEmptyColumnCount
End Sub
------------------------------------------------