4

Excel チャートを、画像ではなくオブジェクト (Excel チャート) として Word にエクスポートしたいと考えています。画像は Chart.CopyPicture で非常に簡単です

AddOleObject を使用していますが、ファイルをリンクできないというエラーが発生します。これはコードです:

Document doc; // Existing document
string chartSheet = xlsFilePath + "!" + chartSheetName;
string type = "Excel.Chart.8";
InlineShape shape = doc.Content.InlineShapes.AddOLEObject(ClassType: type, FileName: chartSheet, LinkToFile: false, DisplayAsIcon: false);

エクセルからワードへのインポートに関する投稿をたくさん見てきましたが、最新のものや機能するものはありません。

例えば:

これは私がやろうとしていることですが、グラフを含む 1 シートのワークブックではなく、多くのグラフを含む本があるので、file.xls!chartSheetname のようにグラフを挿入します

これはコピーと貼り付けを使用しますが、グラフではなくセルを挿入するだけです。チャートでは、copy メソッドはチャートをワークブックの別の場所にコピーします...

そして、これを使用して、ole オブジェクトを Word に追加し、オブジェクトをワークブックにキャストし、ワークシートを作成して、そのワークシートにデータを追加します。しかし、私はすでにチャートを持っています...既存のチャートを挿入したいだけです...

4

1 に答える 1

2

問題は、Office 2010を使用していたことでした。.docを開くと、互換モードで開き、互換モードで.docの.xlsxからオブジェクトを挿入できないようです。そこで、.docを.docxに変換し、.docxとして開いてから、次のように挿入します。

Word.Application wordAPP = new Word.Application();
Word.Document docx = wordAPP.Documents.Open(docFile, false, true, false, Format:Word.WdOpenFormat.wdOpenFormatXMLDocument);
Chart chart = xlsx.Charts[chartSheetName];
chart.ChartArea.Select();
chart.ChartArea.Copy();
docx.Application.Selection.PasteAndFormat(Word.WdRecoveryType.wdFormatOriginalFormatting);
于 2013-03-05T11:50:11.170 に答える