エクセル(xls)に配置したテキストオブジェクトの文字列置換を、
Shape.setTextを使って実施しています。
しかし、グループ化されたオブジェクトに対しての、
文字列置換が正常に置換されません。
対象のエクセル(xls)を添付します。
このエクセルに対して、以下の文字列置換を実施しました。
い→以
お→於
く→久
さ→左
そ→曽
ち→知
と→止
ぬ→奴
は→波
ふ→不
ほ→保
み→美
め→女
しかし、以下の文字列置換が失敗します。(置換されない)
め→女
aspose.cellのバージョン、22.10までは正常に置換できていました。
しかし、22.11移行、現在の最新のバージョンでも失敗します。
ご確認いただけますでしょうか?
Layout-Arrange2.zip (48.4 KB)
@KazukiEndou,
テンプレートファイルと詳細をありがとうございます。
最新バージョンの [Aspose.Cells for Java v24.5] を使用してシナリオ/ケースを少しテストしましたが、正常に動作します。これは、テキストを図形に置き換える最も単純なコードです。これは機能しました。
例えば。、
サンプルコード:
Workbook workbook = new Workbook("d:\\files\\Layout-Arrange2.xls");
Worksheet worksheet = workbook.getWorksheets().get(0);
com.aspose.cells.Shape shape = worksheet.getShapes().get("正方形/長方形 12");
shape.setText(shape.getText().replace("く", "久"));
workbook.save("d:\\files\\out1.xls");
out1.zip (51.4 KB)
参照用の出力 Excel ファイルを添付します。
最新バージョンの API を更新して使用してみてください。それでも問題が発生する場合は、サンプル コード (実行可能ファイル) と出力ファイルを参考として共有してください。すぐに問題を確認させていただきます。
@amjad.sahi
回答ありがとうございます。
グループ化したオブジェクトの置換が正常に行われることは確認できました。
しかし、置換後のxlsを読み込んで、該当部分のテキストを出力したところ、
置換前の値が出力されます。(「女」ではなく、「め」が出力される。)
以下サンプルコードで確認可能ですので、ご確認ください。
Blockquote
Workbook workbook = new Workbook(“c:\tmp\Layout-Arrange2.xls”);
Worksheet worksheet = workbook.getWorksheets().get(0);
com.aspose.cells.Shape shape = worksheet.getShapes().get(“楕円 52”);
shape.setText(shape.getText().replace(“め”, “女”));
workbook.save(“c:\tmp\out1.xls”);
Workbook workbook2 = new Workbook("c:\\tmp\\out1.xls");
Worksheet worksheet2 = workbook2.getWorksheets().get(0);
com.aspose.cells.Shape shape2 = worksheet2.getShapes().get("楕円 52");
System.err.println("shape2=" + shape2.getText());
@KazukiEndou
サンプルファイルとコードを使用して最新バージョンv 24.5でテストすることで、問題を再現することができます。置換テキストが結果ファイルに正常に保存されていないことが検出されました。
内部問題追跡システムで次の新しいチケットを開き、Free Support Policies に記載されている条件に従って修正を提供しています。
質問番号:CELLSJAVA-45984
@KazukiEndou,
はい、チケットはまだ「オープン」です。この問題は、図形のテキスト コンテンツを変更したが、コンポーネントによって変更が同期されていない場合に発生します。この問題は少し複雑なので、修正には時間がかかる可能性があります。
解決策が見つかり次第、この問題に関する最新情報をここに投稿します。