欢迎您访问程序员文章站本站旨在为大家提供分享程序员计算机编程知识!
您现在的位置是: 首页  >  IT编程

ASP.NET中实现导出ppt文件数据的实例分享

程序员文章站 2023-12-17 22:28:10
 前一段时间因工作需要,需增加ppt数据的导出下载。发现网络上这方面资料并不是很多,零零散散地找到一些相关的资料,经过自己的试验,终于完成相关功能。应博友要求,在此分享下我...

 前一段时间因工作需要,需增加ppt数据的导出下载。发现网络上这方面资料并不是很多,零零散散地找到一些相关的资料,经过自己的试验,终于完成相关功能。应博友要求,在此分享下我的经验,不好之处还望大家多多指出。

  在做之前,首先需要添加相关引用microsoft.office.interop.powerpoint.dll。

using powerpoint = microsoft.office.interop.powerpoint;

  操作ppt代码如下:

复制代码
 

    public void createppt()
    {
      try
      {
        //ppt存储路径
        string path = string.format("{0}/{1}.ppt", server.mappath("."), datetime.now.ticks.tostring());
        //ppt引用的模版路径
        string mytemplatefile = "d:\\test.pot";
        powerpoint.applicationclass myapp;
        powerpoint.presentations mypresset;
        powerpoint._presentation mypres;
        powerpoint.shape objshape;
        powerpoint.slides objslides;
        powerpoint._slide myslide;
        powerpoint.textrange objtextrng;
        powerpoint.table table = null;
        myapp = new powerpoint.applicationclass();
        //如果已存在,则删除
        if (file.exists((string)path))
        {
          file.delete((string)path);
        }
        object nothing = missing.value;
        //套用模版
        mypres = myapp.presentations.open(mytemplatefile, msotristate.msofalse, msotristate.msofalse, msotristate.msofalse);
        mypresset = myapp.presentations;
        objslides = mypres.slides;

        //创建第一张ppt pplayouttitle指定模板首页
        myslide = objslides.add(1, powerpoint.ppslidelayout.pplayouttitle);
        //添加一行文字(left:10,top:110,width:700,height:400)
        objtextrng = myslide.shapes.addlabel(msotextorientation.msotextorientationhorizontal, 10, 110, 700, 400).textframe.textrange;
        objtextrng.text = " ppt";
        objtextrng.font.color.rgb = 0x66ccff; //设置字的颜色
        objtextrng.font.size = 42; //字号
        
        //创建第二张ppt pplayoutblank指定无标题页
        myslide = objslides.add(2, powerpoint.ppslidelayout.pplayoutblank);
        //插入图片
        myslide.shapes.addpicture("1.jpg", msotristate.msofalse, msotristate.msotrue, 110, 140, 500, 300);
        
        //创建第三张ppt pplayouttitleonly指定仅有标题页
        myslide = objslides.add(3, powerpoint.ppslidelayout.pplayouttitleonly);
        objtextrng = myslide.shapes[1].textframe.textrange;
        objtextrng.text = "目录";
        objtextrng.font.size = 32;
        //插入图片
        myslide.shapes.addpicture("1.jpg", msotristate.msofalse, msotristate.msotrue, 110, 140, 500, 300);
        
        //创建第四张ppt
        myslide = objslides.add(3, powerpoint.ppslidelayout.pplayoutblank);
        //添加一个表格
        objshape = myslide.shapes.addtable(3, 3, 105, 150, 400, 100);
        table = objshape.table;
        for (int i = 1; i <= table.rows.count; i++)
        {
          for (int j = 1; j <= table.columns.count; j++)
          {
            table.cell(i, j).shape.textframe.textrange.font.size = 12;
            table.cell(i, j).shape.textframe.textrange.text = string.format("[{0},{1}]", i, j);
          }
        }
        
        
        //保存格式
        powerpoint.ppsaveasfiletype format = powerpoint.ppsaveasfiletype.ppsaveasdefault;
        //内容保存
        mypres.saveas(path, format, microsoft.office.core.msotristate.msofalse);
        //关闭exceldoc文档对象
        mypres.close();
        //关闭excelapp组件对象
        myapp.quit();
      }

上一篇:

下一篇: