我使用c#office interop将图表插入到word文档中。
我将图表插入到文档中,然后从图表关联的工作簿中访问ActiveSheet以更改单元格的值以显示我想要的数据。我目前工作的代码可以在下面看到。
Application application = new ApplicationClass();
var paragraph = CreateParagraph();
var chart = application.ActiveDocument.InlineShapes.AddChart(XlChartType.xlColumnClustered, paragraph.Range);
var activeSheet = chart.Chart.ChartData.Workbook.ActiveSheet;
activeSheet.Cells[2, 1] = "YTD LM Sales";
activeSheet.Cells[3, 1] = "YTD LM Budget Value";
activeSheet.Cells[4, 1] = "YTD LY LM Sales";
activeSheet.Rows[5] = null;
for (int i = 0; i <= results.Count() - 1; i++)
{
var sale = results.ElementAt(i);
activeSheet.Cells[1, i + 2] = sale.FinancialPLN;
activeSheet.Cells[2, i + 2] = GetStringValueOfNumber(sale.YtdLmSales);
activeSheet.Cells[3, i + 2] = GetStringValueOfNumber(sale.YtdLmBudgetValue);
activeSheet.Cells[4, i + 2] = GetStringValueOfNumber(sale.YtdLyLmSales);
}
但是,默认情况下,创建的图表在活动工作表中有4行,在图表上显示4个系列。我遇到的问题是我只有3行我想要使用的实际数据。
因此,第四个默认行将在图表中显示一些默认值。
我想一起删除这一行,并确保图表不显示它。我已经尝试将值清零,但是图表只有空格,系列应该是。
有谁知道如何设置以这种方式创建的图表的范围,或者只是从范围中删除一行?
答案 0 :(得分:0)
你能尝试一下以下几点:
chart.Chart.SeriesCollection(4).Delete();
你需要chart.Chart因为图表是InlineShape并且不了解图表行为。
我通过在Excel中记录宏并从图表中删除系列,然后查看代码,找到了SeriesCollection(4).Delete()行为。