c#调用office组件示例

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();
            }
        }
    }
}

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值