0
ここではいくつか質問を読んでいます(少なくとも4歳以上です)。ここで値を更新した後にグラフが更新されない(キャッシュされていても)
は、私は私のチャートを更新する方法です:
/// <summary>Collection of values to push in the chart.</summary>
public IEnumerable<IEnumerable<string>> ChartValues { get; set; }
protected void UpdateChart()
{
var part = _word.MainDocumentPart.ChartParts.First();
SpreadsheetDocument spread = SpreadsheetDocument.Open(part.EmbeddedPackagePart.GetStream(), true);
var sheet = spread.WorkbookPart.Workbook.WorkbookPart.WorksheetParts.First().Worksheet;
var rowId = 2;
var cells = sheet.Descendants<XLS.Cell>();
// Change embedded Excel cell (/word/embeddings)
// Row by row mode : B2 to G2 ; B3 to G3 ; ...
foreach (var chartValue in ChartValues)
{
var columnId = 'B';
foreach (var cellValue in chartValue)
{
var cellId = string.Concat(columnId, rowId);
var cell = cells.First(c => c.CellReference == cellId);
cell.DataType = XLS.CellValues.Number;
cell.CellValue = new XLS.CellValue(cellValue);
columnId++;
}
rowId++;
}
spread.Close();
spread.Dispose();
// Change cached cells as well (/word/chart)
// Column by column mode : B2 to B8 ; C2 to C8 ; ...
var cachedValues = part.ChartSpace.Descendants<Charts.Values>();
int row = 0;
int col = 0;
foreach(var cachedValue in cachedValues)
{ // By column B ; C ; D
row = 0;
foreach(var value in cachedValue.Descendants<Charts.NumericValue>())
{ // By row ;
value.Text = ChartValues.ElementAt(row).ElementAt(col);
row++;
}
col++;
}
}
生成されたWord文書を開くと、グラフは空のままです。 グラフのオプションを選択し、[データの選択]> [OK]または[データの編集]をクリックすると、コンテンツが最新表示され、すべてのデータが表示されます...
チャートがリフレッシュされない理由はありますか?