各シートに印刷範囲を設定したExcelファイルをインポート/エクスポートすると印刷範囲が不正になる

文書番号 : 39524     文書種別 : 不具合     登録日 : 2016/08/17     最終更新日 : 2016/09/09
文書を印刷する
対象製品
SPREAD for ASP.NET 8.0J
状況
修正済み
詳細
各シートに印刷範囲を設定したExcelファイルをインポート/エクスポートすると印刷範囲が不正になります。本現象は、SPREADをExcel 2007形式のExcelファイルに出力した場合にのみ発生します。

【再現コード】
------------------------------------
Webフォームクラス
------------------------------------
Protected Sub Page_Load(sender As Object, e As EventArgs) Handles Me.Load
  If IsPostBack Then Return

  FpSpread1.OpenExcel("Book1.xlsx")
End Sub

Protected Sub Button1_Click(sender As Object, e As EventArgs) Handles Button1.Click
  FpSpread1.SaveExcelToResponse("test.xlsx", FarPoint.Excel.ExcelSaveFlags.UseOOXMLFormat)
End Sub

【再現手順】
1.プロジェクトを起動します
2.Button1をクリックしダウンロードされたExcelを表示します
 -- 印刷範囲が不正になります(最後のシートのものだけが有効になる)
回避方法
Service Pack 3(v8.0.4004.2010)で修正済み。
Service Pack 3(v8.0.4004.2010)より前のバージョンでは次の回避方法が有効です。
------------------------------------------

各シートの印刷範囲の情報を初期化します。本回避コードの実装を行うことで印刷範囲が適切に出力されなす。

------------------------------------
Webフォームクラス
------------------------------------
Protected Sub Button1_Click(sender As Object, e As EventArgs) Handles Button1.Click
  ' 回避策
  Dim dataModel As New FarPoint.Web.Spread.Model.DefaultSheetDataModel()
  For Each sv As FarPoint.Web.Spread.SheetView In FpSpread1.Sheets
    dataModel = DirectCast(sv.DataModel, FarPoint.Web.Spread.Model.DefaultSheetDataModel)
    dataModel.RemoveCustomName("Print_Area")
  Next

  ' Excel出力
  FpSpread1.SaveExcelToResponse("test.xlsx", FarPoint.Excel.ExcelSaveFlags.UseOOXMLFormat)
End Sub