行列の固定を行った場合、ヘッダセルをExcelファイルにエクスポートすると固定領域の位置がずれる
対象製品
SPREAD for WPF 1.0J
状況
修正済み
詳細
行列の固定の設定を行った場合、ヘッダセルをExcelファイルにエクスポートするとSPREADで固定されていたセルがエクスポートしたExcelファイルで固定されません。
【手順】
1.新規ウィンドウにSPREADとButtonを配置します
2.下記サンプルコードをコピーし、アプリケーションを実行します
3.ボタンをクリックしてエクスポートされたExcelファイルを開きます
--固定領域の位置がずれます
【サンプルコード】
Public Sub New()
InitializeComponent()
' テストデータの設定
For i As Integer = 0 To GcSpreadGrid1.RowCount - 1
For j As Integer = 0 To GcSpreadGrid1.ColumnCount - 1
GcSpreadGrid1.Cells(i, j).Value = "R=" & i.ToString() & "C=" & j.ToString()
Next
Next
GcSpreadGrid1.FrozenRowCount = 1
GcSpreadGrid1.FrozenColumnCount = 1
End Sub
Private Sub Button1_Click(sender As Object, e As System.Windows.RoutedEventArgs) Handles Button1.Click
' xlsファイルにエクスポート
Dim s As New GrapeCity.Windows.SpreadGrid.ExcelSaveSettings()
s.IncludeRowHeader = True
s.IncludeColumnHeader = True
GcSpreadGrid1.SaveExcel("test.xls", s)
End Sub
【手順】
1.新規ウィンドウにSPREADとButtonを配置します
2.下記サンプルコードをコピーし、アプリケーションを実行します
3.ボタンをクリックしてエクスポートされたExcelファイルを開きます
--固定領域の位置がずれます
【サンプルコード】
Public Sub New()
InitializeComponent()
' テストデータの設定
For i As Integer = 0 To GcSpreadGrid1.RowCount - 1
For j As Integer = 0 To GcSpreadGrid1.ColumnCount - 1
GcSpreadGrid1.Cells(i, j).Value = "R=" & i.ToString() & "C=" & j.ToString()
Next
Next
GcSpreadGrid1.FrozenRowCount = 1
GcSpreadGrid1.FrozenColumnCount = 1
End Sub
Private Sub Button1_Click(sender As Object, e As System.Windows.RoutedEventArgs) Handles Button1.Click
' xlsファイルにエクスポート
Dim s As New GrapeCity.Windows.SpreadGrid.ExcelSaveSettings()
s.IncludeRowHeader = True
s.IncludeColumnHeader = True
GcSpreadGrid1.SaveExcel("test.xls", s)
End Sub
回避方法
Service Pack 2(v1.0.2015.1109)で修正済み。
Service Pack 2(v1.0.2015.1109)より前のバージョンでは次の回避方法が有効です。
------------------------------------------
Excelファイルへのエクスポート前後でヘッダセルの分固定領域を変更します。
【サンプルコード】
Private Sub Button1_Click(sender As Object, e As System.Windows.RoutedEventArgs) Handles Button1.Click
' xlsファイルにエクスポート
Dim s As New GrapeCity.Windows.SpreadGrid.ExcelSaveSettings()
s.IncludeRowHeader = True
s.IncludeColumnHeader = True
' エクスポート前にヘッダセルの分、固定領域を変更
Dim oldFRow As Integer = GcSpreadGrid1.FrozenRowCount
Dim oldFCol As Integer = GcSpreadGrid1.FrozenColumnCount
GcSpreadGrid1.FrozenRowCount += GcSpreadGrid1.ColumnHeader.RowCount
GcSpreadGrid1.FrozenColumnCount += GcSpreadGrid1.RowHeader.ColumnCount
GcSpreadGrid1.SaveExcel("test.xls", s)
' 固定領域の再設定
GcSpreadGrid1.FrozenRowCount = oldFRow
GcSpreadGrid1.FrozenColumnCount = oldFCol
End Sub
Service Pack 2(v1.0.2015.1109)より前のバージョンでは次の回避方法が有効です。
------------------------------------------
Excelファイルへのエクスポート前後でヘッダセルの分固定領域を変更します。
【サンプルコード】
Private Sub Button1_Click(sender As Object, e As System.Windows.RoutedEventArgs) Handles Button1.Click
' xlsファイルにエクスポート
Dim s As New GrapeCity.Windows.SpreadGrid.ExcelSaveSettings()
s.IncludeRowHeader = True
s.IncludeColumnHeader = True
' エクスポート前にヘッダセルの分、固定領域を変更
Dim oldFRow As Integer = GcSpreadGrid1.FrozenRowCount
Dim oldFCol As Integer = GcSpreadGrid1.FrozenColumnCount
GcSpreadGrid1.FrozenRowCount += GcSpreadGrid1.ColumnHeader.RowCount
GcSpreadGrid1.FrozenColumnCount += GcSpreadGrid1.RowHeader.ColumnCount
GcSpreadGrid1.SaveExcel("test.xls", s)
' 固定領域の再設定
GcSpreadGrid1.FrozenRowCount = oldFRow
GcSpreadGrid1.FrozenColumnCount = oldFCol
End Sub