セルの書式設定を行う方法について
添付した、「test.xls」に対して、
指定したセルに、文字列の書式を設定するために、
以下のテストコードを実行しているのですが、反映されません。
ただし、一度、EXCELで test.xls を開いて上書き保存した後、
再度コードを実行すると反映されています。
EXCELは使用せずに解決したいのですが、
原因、回避手段等あれば、ご教示願います。
(詳細は、「事象.xlsx」にまとめました)
テストコード:
Dim lc_Excel_Pass As String = My.Application.Info.DirectoryPath & “\test.xls”
Dim lc_Workbook As New Aspose.Cells.Workbook(lc_Excel_Pass)
Dim lc_Range As Aspose.Cells.Range = lc_Workbook.Worksheets(0).Cells.CreateRange(1, 1, 1, 1)
Dim lc_Style As Aspose.Cells.Style = lc_Range.Item(0, 0).GetStyle
lc_Style.CultureCustom = “@” '書式を文字列に変更
Dim lc_Flag As New Aspose.Cells.StyleFlag
lc_Flag.NumberFormat = True
lc_Range.ApplyStyle(lc_Style, lc_Flag)
lc_Workbook.Save(lc_Excel_Pass)
確認環境:
Aspose.Cells for .NET 22.1
VB.NET 2013(Frame work 4.5.1
Excel 2019 Pro、Windows 10(21H2)
test.zip (179.9 KB)
@fujitani_y_jp_fujitsu_com,
テンプレートファイルをありがとう。
テンプレートファイルを使用して、おっしゃるように問題を再現することができます。 また、その通りです。MSExcelにファイルを手動で再保存してから、シナリオ/ケースを試してみると、うまくいきます。
問題のIDが「CELLSNET-50377」のチケットを記録しました。 すぐに調べます。
更新があり次第、お知らせします。
@fujitani_y_jp_fujitsu_com
ファイル内のスタイルには無効なフラグがあるため、スタイルを表示できません。実際、各セルには背景色があります。
Color c = lc_Style.ForegroundColor;
適用時にマークを外すと、元の背景と新しく設定した数値形式が出てきます。 この結果ファイルを受け入れてもらえますか?dest.zip (8.4 KB)
@fujitani_y_jp_fujitsu_com
このプロパティはMSExcel UIには表示されないため、Aspose.Cellsではプライベートであり、単純に更新することはできません。また、Aspose.Cellsは、Range.ApplyStyle()メソッドを呼び出すときにのみこのプロパティをチェックできます。
テンプレートファイルは実際にはMSExcelで破損しているため、再保存できる方がよいでしょう。
@fujitani_y_jp_fujitsu_com,
これは、問題が解決したことを通知するためのものです。 この修正は、次の(今後の)リリースであるAspose.Cells for .NET22.3に含まれる予定です。 次のリリースは2022年3月の第2週に公開される予定です。また、新しいリリースが公開されると通知されます。
The issues you have found earlier (filed as CELLSNET-50377) have been fixed in this update. This message was posted using Bugs notification tool by johnson.shi