0

一連のグラフを含む Word 文書 (.docx) があります。私のコードは円グラフの背後にある値を正常に更新し、Word は結果を適切に表示します (グラフのフロント エンドを更新します)。

残念ながら、集合棒グラフについては同じことが言えません。ワークブックの値は更新されますが、フロント エンドは更新されず、新しい値が表示されません。

グラフを右クリックして [データの編集] を選択すると (何も編集する必要はなく、ワークブック ウィンドウが開いたら閉じるだけです)、グラフに表示されている値が更新されます。

それを経ずにフロントエンドを強制的にリフレッシュできる方法はありますか?ファイルを閉じて再度開いても効果はありません。

私が持っているもの:

wordcon.Application wordapp = new wordcon.Application();
wordcon.Document docx = new wordcon.Document();

wordapp.ActiveDocument.InlineShapes[2].Chart.ChartData.Activate();

excelcon.Workbook excelwb = wordapp.ActiveDocument.InlineShapes[2].Chart.ChartData.Workbook;
excelcon.Worksheet excelws = excelwb.Worksheets[1];

excelws.Cells[1, 2] = reference.top_issues_1_name;

excelws.Cells[6, 1] = "a";
excelws.Cells[6, 2] = reference.top_issues_1;

excelws.Cells[5, 1] = "b";
excelws.Cells[5, 2] = reference.top_issues_2;

excelws.Cells[4, 1] = "c";
excelws.Cells[4, 2] = reference.top_issues_3;

excelws.Cells[3, 1] = "d";
excelws.Cells[3, 2] = reference.top_issues_4;

excelws.Cells[2, 1] = "e";
excelws.Cells[2, 2] = reference.top_issues_5;

excelwb.Close();

Marshal.ReleaseComObject(excelws);
Marshal.ReleaseComObject(excelwb);

docx.SaveAs2(reference.chart_file_forked_path + reference.chart_file_forked_file_name);

wordapp.Quit();

Marshal.ReleaseComObject(docx);
Marshal.ReleaseComObject(wordapp);
4

2 に答える 2

1

私はパワーポイントでこれに出くわしました。解決策は似ていると思います。

未テスト

これが Word で機能しない場合はお知らせください。修正します。

Dim cObj as Shape  'Shape container for the ChartObject

'Set cObj = '

    '## Expose the data sheet'
    cObj.Chart.chartData.Activate  

    '## Minimize it'
    cObj.Chart.chartData.Workbook.Application.WindowState = -4140  

'## code to manipulate the cObj, if any.'

'## when done, close the ChartData'

    '## When you're done, close the chartData'
    cObj.Chart.chartData.Workbook.Close  
于 2013-04-24T02:23:24.393 に答える