您的位置:首页 > 编程语言 > C#

c#调用office组件示例

2010-06-12 15:27 309 查看
using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using Excels = Microsoft.Office.Interop.Excel;
using Words = Microsoft.Office.Interop.Word;
using System.Reflection;
using System.Diagnostics;

namespace Excel
{
class Program
{
//设置一个静态对象,想要引入System.Reflection空间
static object _misvalue=Missing.Value;

static void Main(string[] args)
{
//调用生成图表方法参数为TRUE
GenerateChart(copytoword:true);
}

/// <summary>
/// 生成图表对象
/// </summary>
/// <param name="copytoword">是否拷贝对象到WORD</param>
private static void GenerateChart(bool copytoword=false)
{
//打开一个EXCEL对象,设置不显示,并且添加工作表
var excel=new Excels.Application();
excel.Visible=false;
excel.Workbooks.Add();

//获取EXCEL单元格并且赋值
excel.get_Range("A1").Value2="PROCESS NAME";
excel.get_Range("B1").Value2="PROCESS MEMORY";

//获取内存使用排名前10的进程
var processes =Process.GetProcesses().OrderByDescending(p=>p.WorkingSet64).Take(10);

//把获取的信息写入到EXCEL表格
int i = 2;

foreach (var item in processes)
{
excel.get_Range("A" + i).Value2 = item.ProcessName;
excel.get_Range("B" + i).Value2 = item.WorkingSet64;
i++;
}

//选取A1单元格内容
Excels.Range range = excel.get_Range("A1");
//生成一个图表,选择的区域是之前生成数据SHEET的区域
Excels.Chart chart = (Excels.Chart)excel.ActiveWorkbook.Charts.Add(After:excel.ActiveSheet);

//指定图表区域和标题
chart.ChartWizard(Source: range.CurrentRegion, Title: "memory usage" + Environment.MachineName);

//图表的样式和坐标
chart.ChartStyle = 45;
chart.CopyPicture(Excels.XlPictureAppearance.xlScreen, Excels.XlCopyPictureFormat.xlBitmap, Excels.XlPictureAppearance.xlScreen);

if (copytoword)
{
//创建一个WORD对象
var word = new Words.Application();

word.Visible = true;
word.Documents.Add();

word.Selection.Paste();
word.Documents.Save();
}
}
}
}
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: 
相关文章推荐