Xlsファイルを読込み後出力すると、出力したファイルではフォントが読込ファイルと異なって表示される。

下記xlsファイルを読込み後出力すると、出力したファイルではフォントが読込ファイルと異なって表示されます。

byte[] byteData = ~~; //.xlsをバイトは配列で取得
string myMimeType = ~~;//読込したエクセルファイルの拡張子取得

InputStream data = new ByteArrayInputStream(byteData);
Workbook workbook = new Workbook(data); //com.aspose.cells.Workbookで読込
ByteArrayOutputStream outFile = new ByteArrayOutputStream();

if(MIME_EXCEL_XLSX.equals(myMimeType)){//読込したエクセルの拡張子によって保存形式を指定
	myWorkbook.save(outFile,SaveFormat.XLSX);//Excel 2007形式出力
}else {
myWorkbook.save(outFile,SaveFormat.EXCEL_97_TO_2003);//Excel 2003形式出力
}

読込ファイルのセルにフォントには(HG正楷書体-PRO)を設定しています。
出力したファイルでは「ホームタブ > フォント」では「HG正楷書体-PRO」と表示されていますが、
実際のセルは「MS ゴシック」のフォントで表示されてしまいます。
(セルを編集(F2キー)し、エンターキーを押して編集から抜けると「ホームタブ > フォント」も「MS ゴシック」に変わってしまう)

同環境でファイルをxlsxファイルにして読込、出力をした場合は正常に「HG正楷書体-PRO」での表示ができました。
原因と対処方法について、ご教示願います。

確認したバージョン
・aspose-cells-21.10.jar
・Java 17.0.3.1+2-LTS-6
・Excel Microsoft® Excel® 2019 MSO (バージョン 2211 ビルド 16.0.15831.20098) 64 ビット

@H.K,

詳細をありがとう。

Excel(XLS)ファイルを圧縮して添付してください。 すぐに問題を確認いたします。 ところで、違いがある場合は、最新のバージョン/修正を使用してみてください。

Zipファイルを添付します。

よろしくお願いします。
Excel.zip (12.9 キロバイト)

@H.K
ご提供いただいたファイルを確認したところ、templateFile_input.xls と templateFile_output.xls のセルの内容が一致していないことがわかりました。 指定した出力ファイルが実際に入力ファイルから保存されていることを確認してください。

templateFile_input.xlsファイルをエクセルで直接編集したところ、ご指摘のフォントも変更されており、B3のフォントのみ編集中に変更がありませんでした。 Aspose.Cells を使用して xls と xlsx を保持し、結果ファイルを Excel で開いた後、セルのパフォーマンスは入力ファイルと一致しています。

このファイルで使用されているフォントの一部が環境にない可能性があるため、Excel は結果とは異なる動作を示します。 可能であれば、ドキュメントで使用されているこれらのフォント ファイルを提供してください。さらにテストを行うことができます。

@johnson.shi
確認ありがとうございます。
以下追加の情報になります。

ご提供いただいたファイルを確認したところ、templateFile_input.xls と templateFile_output.xls のセルの内容が一致していないことがわかりました。 指定した出力ファイルが実際に入力ファイルから保存されていることを確認してください。

こちらについて、余計な処理が入っていました。
余計な処理は除き、帳票を再出力しましたが、結果は変わらず、同じ現象が発生しています。
・templateFile_input_20230118.xls
・templateFile_output_20230118.xls

また、エクセルの開く順番で表示されるフォントが異なることを確認しました。
パターン1、「templateFile_input_20230118.xls」のみ開く
結果:「HG正楷書体-PRO」で表示される。

パターン2、「templateFile_output_20230118.xls」のみ開く
結果:「MS ゴシック」で表示される。

パターン3、「templateFile_input_20230118.xls」を開いたままに「templateFile_output_20230118.xls」を開く
結果:両ファイルともに「HG正楷書体-PRO」で表示される。

パターン4、「templateFile_output_20230118.xls」を開いたままに「templateFile_input_20230118.xls」を開く
結果:両ファイルともに「MS ゴシック」で表示される。

このファイルで使用されているフォントの一部が環境にない可能性があるため、Excel は結果とは異なる動作を示します。 可能であれば、ドキュメントで使用されているこれらのフォント ファイルを提供してください。さらにテストを行うことができます。

ドキュメントで使用している以下のフォントファイルの方を添付します。
・MS ゴシック
・HG正楷書体-PRO
・Arial
(補足説明:全角文字はMSゴシック、半角英数字のところはArialで表示されています。)

よろしくお願いいたします。

Excel_20230118.zip (8.7 メガバイト)

@H.K
ファイルと詳細な説明を提供していただきありがとうございます。さらにテストと調査を行い、できるだけ早くフィードバックを提供します

@H.K,

内部の問題追跡システムで次の新しいチケットをオープンし、無料サポート ポリシー に記載されている条件に従って修正を提供します。

   問題 ID: CELLSJAVA-45084

優先的にサポートが必要な場合は、有料サポート サービス を取得できます。また、有料サポート管理チームに直接アクセスすることもできます。

@H.K
この問題は修正され、次のバージョン 23.2 に含まれています。
dest.zip (5.9 KB)

@simon.zhao

ご対応、ありがとうございます。
よろしくお願いいたします。

@H.K
どういたしまして!

1 Like

The issues you have found earlier (filed as CELLSJAVA-45084) have been fixed in Aspose.Cells for Java 23.2.