Excelファイルの印刷範囲が、SPREADへのインポート/エクスポートで変化する

文書番号 : 39345     文書種別 : 不具合     登録日 : 2016/03/04     最終更新日 : 2016/09/09
文書を印刷する
対象製品
SPREAD for ASP.NET 8.0J
状況
修正済み
詳細
Excelファイルに設定した印刷範囲が、SPREADへのインポート/エクスポートで変化する現象が発生します。

【再現手順】
1.新規WebフォームにSPREADを配置し、下記の再現コードを貼り付ける
2.プロジェクトフォルダに添付のExcelファイルを配置する
3.プロジェクトを起動し、ボタンを押下する
--- 出力されたExcelファイルの印刷範囲がA1:B65535になる
--- インポートの対象となったExcelファイルの印刷範囲はA:Bとなっているため、
  エクスポート後もこの設定が保持されている状態が正常な動作結果です。

【再現コード】
------------------------------------
Webフォームクラス
------------------------------------
Public Class WebForm1
  Inherits System.Web.UI.Page

  Protected Sub Page_Load(ByVal sender As Object, ByVal e As System.EventArgs) Handles Me.Load
    ' xlsファイルの読み込み
    FpSpread1.OpenExcel(MapPath("Book1.xls"))
  End Sub

  Protected Sub Button1_Click(sender As Object, e As EventArgs) Handles Button1.Click
    ' xlsファイルの出力
    FpSpread1.SaveExcelToResponse("test.xls")
  End Sub
End Class
回避方法
Service Pack 3(v8.0.4004.2010)で修正済み。
Service Pack 3(v8.0.4004.2010)より前のバージョンでは次の回避方法が有効です。
------------------------------------------

下記いずかの方法により現象の回避が可能です。

(1) エクスポート時に印刷範囲を明示的に指定する

以下のサンプルコードに示されるようにファイルのエクスポート時に印刷行の範囲を明示的に指定することで、
本現象の回避が可能です。(インポートしたファイルと同範囲の印刷結果が得られるようになります)

【サンプルコード】
--------------------------------------------------
' 印刷行の範囲を明示的に指定
FpSpread1.ActiveSheetView.PrintInfo.RowStart = 0
FpSpread1.ActiveSheetView.PrintInfo.RowEnd = FpSpread1.ActiveSheetView.NonEmptyRowCount - 1
' エクスポート
FpSpread1.SaveExcelToResponse("test.xls")
--------------------------------------------------

(2) エクスポート時のファイル形式をxlsx形式にする

本現象はエクスポート時のファイル形式を.xls形式とした場合にのみ発生します。このため、ファイル形式をxlsx形式として製品をご利用いただくことにより現象の回避が可能です。

【サンプルコード】
--------------------------------------------------
' xlsxファイルの出力
FpSpread1.SaveExcelToResponse("test.xlsx", FarPoint.Excel.ExcelSaveFlags.UseOOXMLFormat)
--------------------------------------------------