我想从Excel文件中删除图表.Excel文件是一个自动生成的带有图表的历史文件,问题是,每次更新历史记录时,它都会生成一个新图表,但必须删除旧图表...这是我的代码:
Excel.Workbook ExcelWorkBook = ExcelApp.Workbooks.Open(path);
ExcelApp.Visible = true;
Excel.Worksheet Sheet = (Excel.Worksheet)ExcelWorkBook.Worksheets.get_Item(1);
Excel.Range range = Sheet.UsedRange;
int i = 2;
while (Convert.ToString((range.Cells[i, 1] as Excel.Range).Value2) != null)
{
i++;
}
Excel.Range oRange;
Excel._Chart oChart;
Excel.Series oSeries;
oChart = (Excel._Chart)ExcelWorkBook.Charts.Add(Missing.Value, Missing.Value,
Missing.Value, Missing.Value);
oRange = Sheet.get_Range("A2:H" + i).get_Resize(Missing.Value, 8);
oChart.ChartWizard(oRange, Excel.XlChartType.xlLineStacked, Missing.Value,
Excel.XlRowCol.xlColumns, Missing.Value, Missing.Value, Missing.Value,"Chart01");
oSeries = (Excel.Series)oChart.SeriesCollection(1);
oSeries.XValues = Sheet.get_Range("A2", "A" + i);
oChart.Location(Excel.XlChartLocation.xlLocationAsObject, Sheet.Name);
Run Code Online (Sandbox Code Playgroud)
现在我需要在该代码之前删除现有的Chart.
就像是
Excel._Chart asdf = Sheet.ChartObjects("Chart01").Chart;
if (asdf != null)
{
asdf.Delete();
}
Run Code Online (Sandbox Code Playgroud)
这没有找到名称为"Übersicht"的图表,但有一个标题为"Übersicht"的图表
编辑:现在的问题是,它无法删除图表:HRESULT的异常:0x800A03EC
小智 4
在 Excel 中,确保图表确实存在且具有该名称。
您可以使用重命名图表
Sheets("Sheet1").ChartObjects(1).Name = "Chart01"
Run Code Online (Sandbox Code Playgroud)
然后,当您单击电子表格视图中的图表时,您可以看到它实际上已重命名

在 C# 方面,我建议一个像这样的最小示例
bool deleted = false;
try
{
ChartObject myChart = ws.ChartObjects("Chart01");
myChart.Delete();
deleted = true;
}
catch
{
MessageBox.Show("Chart with this name could not be found");
//throw new Exception("Chart with this name could not be found");
}
finally
{
MessageBox.Show("the chart was " + (deleted ? "deleted" : "not deleted"));
}
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
1323 次 |
| 最近记录: |