使用C#和Excel进行报表开发(三)-生成统计图(Chart)4

来源:互联网 发布:python 隐马尔可夫模型 编辑:程序博客网 时间:2024/06/04 19:48
private void button4_Click(object sender, EventArgs e)
{
    
try
    
{
        ThisApplication 
= new Excel.Application();
        m_objBooks 
= (Excel.Workbooks)ThisApplication.Workbooks;
        ThisWorkbook 
= (Excel._Workbook)(m_objBooks.Add(Type.Missing));

        ThisApplication.DisplayAlerts 
= false;

        
this.DeleteSheet();
        
this.AddDatasheet();
        
this.LoadData();

        CreateChart();

        ThisWorkbook.SaveAs(
"z:\\Book2.xls", Type.Missing, Type.Missing,
                    Type.Missing, Type.Missing, Type.Missing, Excel.XlSaveAsAccessMode.xlNoChange,
                Type.Missing, Type.Missing, Type.Missing, Type.Missing);

    }

    
catch (Exception ex)
    
{
        MessageBox.Show(ex.Message);
    }

    
finally
    
{
        ThisWorkbook.Close(Type.Missing, Type.Missing, Type.Missing);
        ThisApplication.Workbooks.Close();

        ThisApplication.Quit();
                System.Runtime.InteropServices.Marshal.ReleaseComObject(ThisWorkbook);
                System.Runtime.InteropServices.Marshal.ReleaseComObject(ThisApplication);
        ThisWorkbook 
= null;
        ThisApplication 
= null;
        GC.Collect();
        
this.Close();
    }


}


Excel.Application ThisApplication 
= null;
Excel.Workbooks m_objBooks 
= null;
Excel._Workbook ThisWorkbook 
= null;

Excel.Worksheet xlSheet 
= null;

/**//// <summary>
/// 用生成的随机数作数据
/// </summary>

private void LoadData()
{
    Random ran 
= new Random();
    
for (int i = 1; i <= 12; i++)
    
{
        xlSheet.Cells[i,  
1= i.ToString() + "";
        xlSheet.Cells[i, 
2= ran.Next(2000).ToString();    
    }

}

/**//// <summary>
/// 删除多余的Sheet
/// </summary>

private void DeleteSheet()
{
    
foreach (Excel.Worksheet ws in ThisWorkbook.Worksheets)
        
if (ws != ThisApplication.ActiveSheet)
        
{
            ws.Delete();
        }

    
foreach (Excel.Chart cht in ThisWorkbook.Charts)
        cht.Delete();
            
}

/**//// <summary>
/// 创建一个Sheet,用来存数据
/// </summary>

private void AddDatasheet()
{
    xlSheet 
= (Excel.Worksheet)ThisWorkbook.
        Worksheets.Add(Type.Missing, ThisWorkbook.ActiveSheet,
        Type.Missing, Type.Missing);

    xlSheet.Name 
= "数据";
}
原创粉丝点击