2011-02-23 36 views
0

我在這裏有一個函數,它需要一張工作表並從中生成一個圖形。我想刪除圖表,從Excel工作表,之後我將它保存我試圖.delete(),但只是把和錯誤,我怎麼去這樣做刪除excel文件中的圖形

private void GenerateGraph(Worksheet worksheet, int lastRow, int lastColumn, string filename) 
    { 
     string topLeft = ToCell(0, 0); 
     string bottomRight = ToCell(lastRow - 1, lastColumn - 1); 

    worksheet.get_Range(ToCell(0, 0), missing).Formula = "Max(B2:" + bottomRight + ")"; 
    worksheet.get_Range(ToCell(0, 0), missing).FormulaHidden = true; 
    worksheet.get_Range(ToCell(0, 0), missing).Calculate(); 
    Range range = (Range)worksheet.Cells[1,1]; 

    string small = (string)range.Value2; 
    double min = Convert.ToDouble(small); 
    worksheet.get_Range(ToCell(0,0),missing).Formula = ""; 

    //Generates the graph 
    range = worksheet.get_Range(topLeft, bottomRight); 
    ChartObjects Xlchart = (ChartObjects)worksheet.ChartObjects(missing); 
    ChartObject chart = (ChartObject)Xlchart.Add(20, 160, 600, 500); 
    Excel.Chart myChart = chart.Chart; 
    myChart.SetSourceData(range, missing); 

    //sets the y axis 
    Axis axis = (Axis)myChart.Axes(XlAxisType.xlValue, XlAxisGroup.xlPrimary); 
    axis.MinimumScaleIsAuto = true; 
    axis.MaximumScaleIsAuto = true; 
    axis.HasTitle = true; 
    axis.AxisTitle.Text = "Measure (m)"; 
    axis.CrossesAt = (int)(min-1); 

    //sets the x axis 
    Axis xAxis = (Axis)myChart.Axes(XlAxisType.xlCategory, XlAxisGroup.xlPrimary); 
    xAxis.HasTitle = true; 
    xAxis.AxisTitle.Text = "Position (m)"; 

    //makes the graph a line graph 
    myChart.ChartType = XlChartType.xlXYScatterLinesNoMarkers; 

    //titles the graph 
    myChart.HasTitle = true; 
    myChart.ChartTitle.Text = "Profiles"; 

    //saves the graph 
    myChart.Export(filename, "JPG", missing); 

    // 
    //here is where I would like to delete the graph 
    // 
} 

回答

0

如果mychart.delete沒有按't do it,try mychart.parent.delete

+0

沒有運氣,父母是對象並且沒有刪除對象 –

+0

父母是ChartObject,它**沒有.Delete方法。 –