Aspose.Cells for .NET(v26.1.0)を利用しています。
範囲コピーで線オブジェクトがコピーされません。
詳細は以下の添付ファイルをご確認ください。
線オブジェクトがコピーされない.zip (63.3 KB)
添付ファイル内の「検証結果.docx」をご確認ください。
Aspose.Cells for .NET(v26.1.0)を利用しています。
範囲コピーで線オブジェクトがコピーされません。
詳細は以下の添付ファイルをご確認ください。
線オブジェクトがコピーされない.zip (63.3 KB)
添付ファイル内の「検証結果.docx」をご確認ください。
ご報告のとおり、Aspose.Cells for .NET (v26.1.0) の Range.Copy はセルの内容と書式のみを対象とし、線(描画オブジェクト)はコピーされません [8]。
対策(ワークアラウンド)
Range.CopyData または Range.CopyValue を使用すると、描画オブジェクトを含めずにセルのデータだけをコピーできます [8]。Shape.IsVisible = false に設定し、コピー後に再度表示させる方法があります [8]。上記で解決しない場合は、再現用の最小サンプル(コードと対象ブック)をご提供いただければ、こちらで詳細に調査いたします。ご不明点があればこのスレッドでお知らせください。
は、内部問題追跡システムで次の新しい問題をオープンし、[無償サポートポリシー]に記載されている条件に従って修正を提供しています(Free Support Policies).
リリースID:CELLSNET-59802
[有料サポートサービス] (https://helpdesk.aspose.com/) 優先的なサポートが必要な場合、およびデルの有料サポート管理チームに直接アクセスする必要があります。
@kawamura.any.one.jp
2本の横線はすべてshapeで、
PasteType=PasteType.Formatsの場合、shapeはコピーされるべきではありません。Aspose.CellsとExcelの表現は一致しています。
グラフィックをコピーする場合:
destRange.Copy(sourceRange, new PasteOptions() { });
返信ありがとうございます。
destRange.Copy(sourceRange, new PasteOptions() { PasteType = PasteType.Formats });
このコードは、エクセルInteropを使用しているときにセルの高さが反映されずShapeの位置がおかしくなったことがあったために入れていたコードをAspose向けに変更したものです。
sheet.Cells.CopyRows(wb.Worksheets[“原本”].Cells, 0, 10, 10);
このコードでShapeの楕円はコピーされていますが、線はコピーされません。
@kawamura.any.one.jp
CopyRowsのバグを修正しました
Range sourceRange = wb.Worksheets["原本"].Cells.CreateRange("1:10");
Range destRange = sheet.Cells.CreateRange("11:20");
destRange.Copy(sourceRange, new PasteOptions() { PasteType = PasteType.Formats });
sheet.Cells.CopyRows(wb.Worksheets["原本"].Cells, 0, 10, 10);
結果:
dest (3).zip (16.5 KB)
しかし、なぜ同じ領域を2回コピーするのですか?
Excel.Interopを使用していたときにうまく反映しなかったときのコードを移植して書き換えたためと思います。
destRange.Copyはなくても問題ないようなので削除したいと思います。