Win7环境C#使用Word模板生成报告(二)

2012-03-10 12:13:49|?次阅读|上传:wustguangh【已有?条评论】发表评论

关键词:C#, Office套件|来源:唯设编程网

5、在Word模板文件中插入表格

    /// <summary>
    /// 插入表格
    /// </summary>
    /// <param name="boookmark">书签</param>
    /// <param name="rows"></param>
    /// <param name="columns"></param>
    /// <param name="width"></param>
    /// <returns></returns>
    public Table InsertTable(string bookmark, int rows, int columns, float width) {
        object miss = System.Reflection.Missing.Value;
        object oStart = bookmark;
        Range range = wordDoc.Bookmarks.get_Item(ref oStart).Range; //表格插入位置
        Table newTable = wordDoc.Tables.Add(range, rows, columns, ref miss, ref miss);
        //设置表的格式,允许有边框,默认没有边框(为0时报错,
        //1为实线边框,2、3为虚线边框,以后的数字没有试过)
        newTable.Borders.Enable = 1;
        newTable.Borders.OutsideLineWidth = WdLineWidth.wdLineWidth050pt;//边框的宽度
        if (width != 0) {
            //表格的宽度
            newTable.PreferredWidth = width;
        }
        newTable.AllowPageBreaks = false;
        return newTable;
    }

6、在Word模板文件中插入图片

    /// <summary>
    /// 插入图片
    /// </summary>
    /// <param name="bookmark"></param>
    /// <param name="picturePath"></param>
    /// <param name="width"></param>
    /// <param name="height"></param>
    public void InsertPicture(string bookmark, string picturePath, float width, float height) {
        object miss = System.Reflection.Missing.Value;
        object oStart = bookmark;
        object linkToFile = false;  //图片是否为外部链接
        object saveWidthDocument = true;    //图片是否随文档一起保存
        object range = wordDoc.Bookmarks.get_Item(ref oStart).Range;//图片的插入位置
        wordDoc.InlineShapes.AddPicture(picturePath, ref linkToFile, ref saveWidthDocument, ref range);
        if (width != 0) {
            //设置图片宽度
            wordDoc.Application.ActiveDocument.InlineShapes[1].Width = width;
        }
        if (height != 0) {
            //设置图片高度
            wordDoc.Application.ActiveDocument.InlineShapes[1].Height = height;
        }
    }

7、在Word模板文件中增加一段文字

    /// <summary>
    /// 插入一段文字
    /// </summary>
    /// <param name="bookmark">书签</param>
    /// <param name="text">文字内容</param>
    public void InsertText(string bookmark, string text) {
        object oStart = bookmark;
        object range = wordDoc.Bookmarks.get_Item(ref oStart).Range;
        Paragraph wp = wordDoc.Content.Paragraphs.Add(ref range);
        wp.Format.SpaceBefore = 6;
        wp.Range.Text = text;
        wp.Format.SpaceAfter = 24;
        wp.Range.InsertParagraphAfter();
        wordDoc.Paragraphs.Last.Range.Text = "
";
    }

8、结束标题为空的Word进程

    /// <summary>
    /// 杀掉窗体标题为空的winword.exe进程
    /// </summary>
    public void killWinWordProcess() {
        Process[] processes = Process.GetProcessesByName("WINWORD");
        foreach (Process process in process) {
            if (process.MainWindowTitle == "") {
                process.Kill();
            }
        }
    }

关于C#在Windows环境对进程进行的操作,在C#使用Process类的Kill和CloseMainWindow方法结束进程中有详细的介绍,有感兴趣的读者可以查阅。

本文在文章Win7环境C#使用Word模板生成报告(一)的基础上进行了补充,通过这两篇文章的介绍,读者已经可以完成C#使用Word模板自动化生成报告的工作了。由于水平和经验不够,本文涉及到的都是一些简单的基础操作,不足之处希望大家一起讨论。

<12>
发表评论0条 】
网友评论(共?条评论)..
Win7环境C#使用Word模板生成报告(二)