[Aspose.Cells] シートのコピーで例外が発生する

Aspose.Cells for .NET(v25.12.0)を利用しています。

Aspose.Cellsでシートをコピーするときに例外が発生します。
シートに配置している画像ファイルが影響していると思われます。

本件の対処方法を教えてください。
不具合であれば修正を検討ください。

詳細は以下の添付ファイルをご確認ください。
シートコピー検証.zip (219.1 KB)

@kawamura.any.one.jp

ご提供いただいた情報だけでは例外の正確な原因は特定できません。シートコピー時に画像が関与している場合、以下の点をまずご確認ください【1】。

  1. 例外メッセージとスタックトレースの取得

    try { worksheet.CopyTo(...); }
    catch (Exception ex) { Console.WriteLine(ex.ToString()); }
    

    例外情報(例: Object reference not set to an instance of an objectInvalid image format など)を提示いただくと、原因の絞り込みがしやすくなります。

  2. 画像の種類・状態の確認

    • 埋め込み画像が破損している、またはサポート外フォーマット(例: CMYK JPEG、TIFF など)だとコピー時に例外が発生します。
    • worksheet.Pictures コレクションから対象画像を取得し、Picture.ImageFormatPicture.ImageBytes が有効か確認してください。
  3. 画像を除外してコピーしてみる

    var pictures = worksheet.Pictures.ToArray();   // 事前取得
    foreach (var pic in pictures) worksheet.Pictures.Remove(pic);
    worksheet.CopyTo(targetWorksheet);
    // 必要なら後で画像を再配置
    foreach (var pic in pictures) targetWorksheet.Pictures.Add(pic);
    

    画像除去で例外が解消すれば、画像フォーマットやサイズが問題であることが分かります。

  4. Aspose.Cells のバージョンアップ

    • v25.12.0 以前では、特定の画像(特に PNG のアルファチャンネルや大容量 JPEG)を含むシートコピーで既知の不具合が報告されています。
    • 最新の安定版(例: 25.13.x 以降)に更新すると、同様の問題が修正されている可能性があります。公式リリースノートをご確認ください。
  5. 代替コピー手段の利用

    • Worksheet.CopyTo の代わりに Workbook.CopyWorksheet(sourceIndex, destinationIndex) を使用すると、内部の画像処理が異なるため例外が回避できる場合があります。
    • あるいはシート全体を Workbook にエクスポートし、再度インポートする(SaveLoad)方法でも画像を含むシートの複製が可能です。

次の情報をご提供いただければ、より具体的な対策をご案内できます

  • 例外の完全なメッセージとスタックトレース
  • 該当シートに配置されている画像のファイル形式・サイズ(可能であればサンプル画像)
  • 現在使用中のコードスニペット(CopyTo の呼び出し部分)

上記をご確認の上、追加情報をご提示ください。いただいた情報を元に再現手順の確認やバグの有無の判定を進めます。

@kawamura.any.one.jp
サンプルファイルとコードを使用して最新バージョンv25.12でテストすることで、問題を再現できます。ワークシートをコピーすると、NullReferenceExceptionエラーが発生しました。

内部問題追跡システムで次の新しいチケットを開き、Free Support Policies に記載されている条件に従って修正を提供しています。

質問番号:CELLSNET-59561

@kawamura.any.one.jp
問題 (CELLSNET-59561) は解決されており、修正された機能はバージョン 26.1 でリリースされる予定です。
最新の機能を使用して生成された結果ファイルは次のとおりです。
out_net.zip (114.1 KB)

The issues you have found earlier (filed as CELLSNET-59561) have been fixed in this update. This message was posted using Bugs notification tool by leoluo

1 Like