Aspose.Cells for .NET(v26.4.0)を利用しています。
複数のエクセルファイルをAspose.Cellsで結合してPDF変換すると日付欄が####になりました。
それぞれのエクセルファイルをPDF変換しても問題ありませんでした。
本件の対処方法を教えてください。
不具合であれば修正対応してください。
詳細は以下の添付ファイルをご確認ください。
エクセルファイルを結合してPDFに.zip (200.7 KB)
添付ファイル内の「問い合わせ.docx」をご確認ください。
@kawamura.any.one.jp
お問い合わせいただきありがとうございます。
ご提供いただいたサンプルファイル(claimSign1.xlsx, claimSign2.xlsx, sum_freee.xlsx, 問い合わせ.docx, 請求書.pdf)を受領いたしました。詳細な資料をご共有いただき、感謝申し上げます。
ご報告いただいた現象について、Aspose.Cells 26.4 を使用して弊社環境でも再現を確認いたしました。結合後のサマリーシート(PDFの5、6ページ目)において、「発行日」フィールドが「###############」と表示されることを確認しております。
調査の結果、結合プロセス中に特定の列幅が保持されず、フォーマットされた日付文字列を表示するのに十分な幅が確保されていないことが原因である可能性が高いことが判明いたしました。個別ファイルの変換では正常に表示される一方で、結合後の出力においてのみこの問題が発生することを確認しております。
内部問題追跡システムにて以下の新しいチケットを発行いたしました。これらの修正は、無料サポートポリシーに記載されている条件に従って提供されます。
問題ID: CELLSNET-60157
優先的なサポートや、有料サポート管理チームへの直接的な連絡が必要な場合は、有料サポートサービスをご利用いただけます。
@kawamura.any.one.jp
フォントを確認してくださいMS Pゴシック サーバーにインストールされています。
ファイルを参照:Configuring Fonts for Rendering Spreadsheets|Documentation
フォントがインストールされている場合は、オペレーティングシステム、言語設定を共有します。
@kawamura.any.one.jp ,
セルY4を例にとると、日付形式になっていますが、表示される文字列は地域/ロケールによって異なります。
システム(xlsxをpdfに変換する場所)のデフォルトロケールを日本に設定してみてください。または、Aspose.Cellsで設定することもできます。
コード:
Workbook wb = new Workbook("sum_freee.xlsx");
Console.WriteLine("------Before----");
Console.WriteLine(wb.Settings.Region);
Console.WriteLine(wb.Worksheets[0].Cells["Y4"].DisplayStringValue);
wb.Settings.Region = CountryCode.Japan;
Console.WriteLine("------After----");
Console.WriteLine(wb.Settings.Region);
Console.WriteLine(wb.Worksheets[0].Cells["Y4"].DisplayStringValue);
wb.Save("output.pdf");
いただいた方法で改善することは確認しました。
この対応で進めますが、問題の対応に関しては実施されるということで合っていますか?
@kawamura.any.one.jp ,
これはMicrosoft Excelの動作です。システム地域/ロケールを変更してExcelアプリケーションを再起動すると、Excelで異なる結果が表示されます。
したがって、日本ロケールの結果が必要な場合は、地域設定を日本に設定すれば問題ありません。
@kawamura.any.one.jp
ご確認いただきありがとうございます。問題が解決したようで、私共も大変嬉しく思います。
また何かご不明な点や、Aspose.Cellsの利用においてお困りのことがございましたら、いつでもお気軽にフォーラムへお問い合わせください。
今後とも弊社製品をよろしくお願いいたします。