作成日: 2022/03/18 最終更新日: 2022/08/31
文書種別
不具合
状況
修正済み
詳細
C1Excelで、セル結合を設定したのち、明示的にスタイルを設定せずにExcelファイルとして保存します。 このファイルをC1FlexSheetのLoadメソッドでロードすると、例外が発生します。
回避方法
この問題は2022J v2(4.6.20222.773)で修正されました。
※修正版を適用しない場合の回避方法は以下の通りです。
C1Excelでセル結合を作成する場合、それぞれのセルに対して明示的にスタイルを設定します。
以下は、1行目の1列~2列目のセルを結合し、背景色を白に設定したスタイルを各セルに設定した後、Excelファイルとして保存する例です。
◎サンプルコード(VB)
※修正版を適用しない場合の回避方法は以下の通りです。
C1Excelでセル結合を作成する場合、それぞれのセルに対して明示的にスタイルを設定します。
以下は、1行目の1列~2列目のセルを結合し、背景色を白に設定したスタイルを各セルに設定した後、Excelファイルとして保存する例です。
◎サンプルコード(VB)
Imports C1.C1Excel
Public Class Form1
Private Sub Button1_Click(sender As Object, e As EventArgs) Handles Button1.Click
' データの設定
Dim sheet As C1.C1Excel.XLSheet = C1XLBook1.Sheets(0)
For i As Integer = 1 To 9
sheet(i, 0).Value = (i + 1) * 10
sheet(i, 1).Value = (i + 1) * 100
sheet(i, 2).Value = (i + 1) * 1000
Next
' 結合セルの設定
Dim _ColRange As C1.C1Excel.XLCellRange = New C1.C1Excel.XLCellRange(0, 0, 0, 1)
C1XLBook1.Sheets(0)(0, 0).Value = "結合したセル範囲"
C1XLBook1.Sheets(0).MergedCells.Add(_ColRange)
' 結合セルにスタイルを設定
Dim style As XLStyle = New XLStyle(C1XLBook1)
style.BackColor = Color.White
For i As Integer = 0 To 1
sheet(0, i).Style = style
Next
' Excelファイルの保存
C1XLBook1.Save("..\..\Test01.xlsx")
End Sub
End Class
◎サンプルコード(C#)
using C1.C1Excel;
namespace prj_C1Excel
{
public partial class Form1 : Form
{
public Form1()
{
InitializeComponent();
}
private void button1_Click(object sender, EventArgs e)
{
// データの設定
C1.C1Excel.XLSheet sheet = c1XLBook1.Sheets[0];
for (int i = 1; i <= 9; i++) // 1行目には何も設定していない
{
sheet[i, 0].Value = (i + 1) * 10;
sheet[i, 1].Value = (i + 1) * 100;
sheet[i, 2].Value = (i + 1) * 1000;
}
// 結合セルの設定
C1.C1Excel.XLCellRange _ColRange = new C1.C1Excel.XLCellRange(0, 0, 0, 1);
c1XLBook1.Sheets[0][0, 0].Value = "結合したセル範囲";
c1XLBook1.Sheets[0].MergedCells.Add(_ColRange);
// 結合セルにスタイルを設定
XLStyle style = new XLStyle(c1XLBook1);
style.BackColor = Color.White;
for (int i = 0; i <= 1; i++)
{
sheet[0, i].Style = style;
}
// Excelファイルの保存
c1XLBook1.Save(@"..\..\Test01.xlsx");
}
}
}