Aspose.Cells for .NET(v25.12.0)を利用しています。
Aspose.Cellsでシートをコピーするときに例外が発生します。
シートに配置している画像ファイルが影響していると思われます。
本件の対処方法を教えてください。
不具合であれば修正を検討ください。
詳細は以下の添付ファイルをご確認ください。
シートコピー検証.zip (219.1 KB)
Aspose.Cells for .NET(v25.12.0)を利用しています。
Aspose.Cellsでシートをコピーするときに例外が発生します。
シートに配置している画像ファイルが影響していると思われます。
本件の対処方法を教えてください。
不具合であれば修正を検討ください。
詳細は以下の添付ファイルをご確認ください。
シートコピー検証.zip (219.1 KB)
ご提供いただいた情報だけでは例外の正確な原因は特定できません。シートコピー時に画像が関与している場合、以下の点をまずご確認ください【1】。
例外メッセージとスタックトレースの取得
try { worksheet.CopyTo(...); }
catch (Exception ex) { Console.WriteLine(ex.ToString()); }
例外情報(例: Object reference not set to an instance of an object、Invalid image format など)を提示いただくと、原因の絞り込みがしやすくなります。
画像の種類・状態の確認
worksheet.Pictures コレクションから対象画像を取得し、Picture.ImageFormat や Picture.ImageBytes が有効か確認してください。画像を除外してコピーしてみる
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);
画像除去で例外が解消すれば、画像フォーマットやサイズが問題であることが分かります。
Aspose.Cells のバージョンアップ
代替コピー手段の利用
Worksheet.CopyTo の代わりに Workbook.CopyWorksheet(sourceIndex, destinationIndex) を使用すると、内部の画像処理が異なるため例外が回避できる場合があります。Workbook にエクスポートし、再度インポートする(Save → Load)方法でも画像を含むシートの複製が可能です。次の情報をご提供いただければ、より具体的な対策をご案内できます
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