Aspose.Words 通过书签导出数据

先引用Aspose.Words类库,然后创建一个Word模板,我现在的需求是有一个模板页,但是需要多个相同的模板页数量也不一定,就需要创建需要多页模板页,但是创建的时候书签是会有变化的,现在分享一下心得。

 

            //模板路径
            string WordTemplate = Server.MapPath("~/Files/Template/Word/模板.doc");
           //实例化
            Document doc = new Document(WordTemplate);
           //把原模板复制下来
            Document doc3 = doc.Clone();
            int j = 0;
            int k = 0;
           //取得的数据条数
            k = Data.Count();
                //服务器临时文件夹        这个是创建多个模板页的文件夹,并且删除创建过的模板页       
                string wordPath = Server.MapPath("~/Files/Template/TempWord/");
                if (!Directory.Exists(wordPath))
                {
                    Directory.CreateDirectory(wordPath);
                }
                //通过等到的数据创建模板页
                for (int i = 0; i < k - 1; i++)
                {
                    doc3.AppendDocument(doc, ImportFormatMode.KeepSourceFormatting);
                }
               //保存新的模板页
                doc3.Save(wordPath + "New_模板.doc");
               //实例化新的模板页
                Document doc2 = new Document(wordPath + "New_模板.doc");
//循环数据 书签替换
                foreach (var item in Data)
                {
                   //查找到书签标签
                        foreach (Bookmark mark in doc2.Range.Bookmarks)
                        {
                            //复制书签标签后标签会自动添加数字下标
                            string Name = "Name_" + j;
                            string Bill_Money = "Bill_Money_" + j;
                            string PayCode = "PayCode_" + j;
                            if (mark != null)
                            {
                                if (mark.Name == "Name" || mark.Name == Name)
                                {
                                    mark.Text = !string.IsNullOrEmpty(Currencyitem.FirstOrDefault().CstmNameC) ? Currencyitem.FirstOrDefault().CstmNameC : !string.IsNullOrEmpty(Currencyitem.FirstOrDefault().CstmNameE) ? Currencyitem.FirstOrDefault().CstmNameE : "     ";
                                }
                                else if (mark.Name == "PayCode" || mark.Name == PayCode)
                                {
                                    mark.Text = Currencyitem.FirstOrDefault().VendorCode;
                                }
                                else if (mark.Name == "Bill_Money" || mark.Name == Bill_Money)
                                {
                                    decimal? Sum_M = Currencyitem.Where(o => true).Sum(o => o.WeiHeXiaoJinEr);
                                    mark.Text = ExchangRate.FirstOrDefault(o => o.ExchangeRateType == Currencyitem.Key).TypeNameJX + Decimal.Round((decimal)Sum_M, 2);
                                } 
                    }

                    j++;

                }
//保存新的Word
                wordpathname = wordPath + "付款申请书" + DateTime.Now.ToString("yyyyMMddHHmmss") + ".doc";
                doc2.Save(wordpathname);
            }
            FileInfo fileInfo = new FileInfo(wordpathname);
下载保存得Word

 

  • 1
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值