zoukankan      html  css  js  c++  java
  • Aspose.Words生成word文件

    首先设置word模板,可以点击某个单元格插入书签

    插入方法:鼠标点击word文件某处,然后   插入--书签 即可

    //关键代码如下……………………

            string tmppath = Server.MapPath("~/Template.doc");
    
            Document doc = new Document(tmppath); //载入模板
    
            //使用书签
            if (doc.Range.Bookmarks["mark"] != null)
            {
                //Bookmark mark = doc.Range.Bookmarks["mark"];//根据书签名称获取书签
                //mark.Text = "sean";
            }
            //不使用书签  通过移动单元格 来添加值
            DocumentBuilder builder = new DocumentBuilder(doc);
            //设置单元格内容对齐方式
            builder.ParagraphFormat.Alignment = ParagraphAlignment.Left;
            builder.MoveToCell(0, 2, 3,0); //tableIndex,rowIndex,columnIndex,characterIndex  初始索引0
            builder.Write("chang");
            doc.Save("demo.doc", SaveFormat.Doc, SaveType.OpenInWord, Response);  //保存为doc,并打开
           //doc.Save(HttpContext.Current.Server.MapPath(savePath), SaveFormat.Doc);//直接保存文件
     
    //PS:
        在实际使用过程中发现如果表格都在word模板第一页的时候,我们可以使用通过更改moveToCell方法第一个参数tableIndex来填写具体哪个表,但是当模板有若干页时,
    通过更改方法第一个参数值直接报错(超出表索引)
        在网上找了半天,最终发现了一个算是很麻烦的方法:模板插入域(插入--文档部件--域--类别选择邮件合并点击MergeField输入名称),然后Aspose.Words提供一个方法:
     doc.MailMerge.Execute(string[]fieldNames,object[]values) 及把模板中的域名称以及数组对应数据分别组合一个数组,通过该方法可以把数据插入对应域上。这个方法
    适用于模板中单元格相对比较少,如果太多的话模板维护起来很麻烦。
       
         

  • 相关阅读:
    ASP.NET 4.0 与 Entity Framework 4第一篇采用ModelFirst 开发方式创建数据库
    Web SSH 客户端Ajaxterm安装
    新浪微博Wordpress插件博客微博安装手册
    Sharetronix 微博客系统安装手册
    ASP.NET 4.0 与 Entity Framework 4第三篇使用Entity Framework调用存储过程
    QQ概念版体验[多图]
    您博客应该有的8个设计要素
    Centos 系统更新Python
    每天一个linux命令(28):tar命令
    C# 类(5) 重载
  • 原文地址:https://www.cnblogs.com/scorpio-qian/p/6144025.html
Copyright © 2011-2022 走看看