作成日: 2018/10/23 最終更新日: 2018/12/18
文書種別
不具合
状況
修正済み
詳細
列ヘッダの出力を有効にしてOpen XML形式(.xlsx)でExcel出力すると、スタイルが正しく反映されない場合があります。
■サンプルコード(VB.NET)
【再現手順】
1.フォーム上にSPREADコントロールを配置し、上記のサンプルコードを実装します。
2.アプリケーションを実行します。
-- 出力されたExcelファイルについて、一部のセル範囲に背景色と縦の罫線が設定されていません。
3.「.ColumnHeader.RowCount = 2」をコメントアウトした上で、アプリケーションを再度実行します。
-- 出力されたExcelファイルについて、一部のセル範囲に縦の罫線が設定されていません。
■サンプルコード(VB.NET)
Private Sub Form1_Load(sender As Object, e As EventArgs) Handles MyBase.Load
With FpSpread1.ActiveSheet
' 条件1:罫線を設定している。
.DefaultStyle.Border = New FarPoint.Win.ComplexBorder _
(New FarPoint.Win.ComplexBorderSide(FarPoint.Win.ComplexBorderSideStyle.ThickLine, Color.Red))
.RowCount = 10
.ColumnCount = 10
.ColumnHeader.RowCount = 2 ' ※列ヘッダの行数によって発生する問題が異なります。
.ColumnHeader.Cells(0, 0).ColumnSpan = .ColumnCount ' <== 条件2:列ヘッダ上のセルを結合している
For i As Integer = 0 To .RowCount - 1
For j As Integer = 0 To .ColumnCount - 1
.Cells(i, j).BackColor = Color.Black
Next
Next
End With
' 条件3:Excel出力時に列ヘッダを有効にしている。
FpSpread1.SaveExcel("test.xlsx", FarPoint.Excel.ExcelSaveFlags.SaveBothCustomRowAndColumnHeaders _
Or FarPoint.Excel.ExcelSaveFlags.UseOOXMLFormat)
End Sub
With FpSpread1.ActiveSheet
' 条件1:罫線を設定している。
.DefaultStyle.Border = New FarPoint.Win.ComplexBorder _
(New FarPoint.Win.ComplexBorderSide(FarPoint.Win.ComplexBorderSideStyle.ThickLine, Color.Red))
.RowCount = 10
.ColumnCount = 10
.ColumnHeader.RowCount = 2 ' ※列ヘッダの行数によって発生する問題が異なります。
.ColumnHeader.Cells(0, 0).ColumnSpan = .ColumnCount ' <== 条件2:列ヘッダ上のセルを結合している
For i As Integer = 0 To .RowCount - 1
For j As Integer = 0 To .ColumnCount - 1
.Cells(i, j).BackColor = Color.Black
Next
Next
End With
' 条件3:Excel出力時に列ヘッダを有効にしている。
FpSpread1.SaveExcel("test.xlsx", FarPoint.Excel.ExcelSaveFlags.SaveBothCustomRowAndColumnHeaders _
Or FarPoint.Excel.ExcelSaveFlags.UseOOXMLFormat)
End Sub
【再現手順】
1.フォーム上にSPREADコントロールを配置し、上記のサンプルコードを実装します。
2.アプリケーションを実行します。
-- 出力されたExcelファイルについて、一部のセル範囲に背景色と縦の罫線が設定されていません。
3.「.ColumnHeader.RowCount = 2」をコメントアウトした上で、アプリケーションを再度実行します。
-- 出力されたExcelファイルについて、一部のセル範囲に縦の罫線が設定されていません。
回避方法
Service Pack 2(v11.0.4503.2012)で修正済み。
Service Pack 2を適用せずに対処する方法としては、一時的にヘッダの結合状態を解除してからExcelエクスポートを行います。
■サンプルコード(VB.NET)
Service Pack 2を適用せずに対処する方法としては、一時的にヘッダの結合状態を解除してからExcelエクスポートを行います。
■サンプルコード(VB.NET)
' ヘッダの結合を初期化(回避策)
FpSpread1.ActiveSheet.ColumnHeader.Cells(0, 0).ColumnSpan = 1
FpSpread1.SaveExcel("a2.xlsx", FarPoint.Excel.ExcelSaveFlags.SaveBothCustomRowAndColumnHeaders _
Or FarPoint.Excel.ExcelSaveFlags.UseOOXMLFormat)
' ヘッダの結合を再設定(回避策)
FpSpread1.ActiveSheet.ColumnHeader.Cells(0, 0).ColumnSpan = FpSpread1.ActiveSheet.ColumnCount
FpSpread1.ActiveSheet.ColumnHeader.Cells(0, 0).ColumnSpan = 1
FpSpread1.SaveExcel("a2.xlsx", FarPoint.Excel.ExcelSaveFlags.SaveBothCustomRowAndColumnHeaders _
Or FarPoint.Excel.ExcelSaveFlags.UseOOXMLFormat)
' ヘッダの結合を再設定(回避策)
FpSpread1.ActiveSheet.ColumnHeader.Cells(0, 0).ColumnSpan = FpSpread1.ActiveSheet.ColumnCount
旧文書番号
83330