分享web开发知识

注册/登录|最近发布|今日推荐

主页 IT知识网页技术软件开发前端开发代码编程运营维护技术分享教程案例
当前位置:首页 > 教程案例

Asponse.Words进行Word替换

发布时间:2023-09-06 01:21责任编辑:白小东关键词:暂无标签
using System;using System.Collections.Generic;using System.Linq;using System.Text;using System.Data;using System.Text.RegularExpressions;using Aspose.Words;using Aspose.Words.Drawing;using System.IO;namespace ASPONSE_Words{ ???public class Program ???{ ???????static void Main(string[] args) ???????{ ???????????Console.WriteLine("开始进行操作"); ???????????DataTable dt = new DataTable(); ???????????dt.Columns.Add("title", typeof(string)); ???????????dt.Columns.Add("xm", typeof(string)); ???????????dt.Columns.Add("xb", typeof(string)); ???????????dt.Columns.Add("mz", typeof(string)); ???????????dt.Columns.Add("nl", typeof(string)); ???????????dt.Columns.Add("Photo1", typeof(string)); ???????????dt.Columns.Add("Photo2", typeof(string)); ???????????dt.Columns.Add("Photo3", typeof(string)); ???????????dt.Columns.Add("Photo4", typeof(string)); ???????????DataRow dr = dt.NewRow(); ???????????dr["title"] = "测试"; ???????????dr["xm"] = "华哥"; ???????????dr["xb"] = "男神"; ???????????dr["mz"] = "汉族"; ???????????dr["nl"] = "18"; ???????????dr["Photo1"] = "../File/1.jpg"; ???????????dr["Photo2"] = "../File/2.jpg"; ???????????dr["Photo3"] = "../File/3.jpg"; ???????????dr["Photo4"] = "../File/4.jpg"; ???????????dt.Rows.Add(dr); ???????????var fileUrl = "../File/test11.doc"; ???????????try ???????????{ ???????????????Print(fileUrl, dt); ???????????????Console.WriteLine("替换成功"); ???????????} ???????????catch (Exception) ???????????{ ???????????????Console.WriteLine("替换失败"); ???????????} ???????????Console.ReadKey(); ???????} ???????public static void Print(string fileurl, DataTable dtInfo) ???????{ ???????????Document doc = new Document(fileurl); ???????????if (dtInfo != null && dtInfo.Rows.Count > 0) ???????????{ ???????????????var dr = dtInfo.Rows[0]; ???????????????foreach (DataColumn dc in dtInfo.Columns) ???????????????{ ???????????????????var nValue = dr[dc.ColumnName] + ""; ???????????????????try ???????????????????{ ???????????????????????if (dc.ColumnName.Contains("Photo")) ???????????????????????{ ???????????????????????????if (File.Exists(nValue)) ???????????????????????????{ ???????????????????????????????Regex reg = new Regex("#" + dc.ColumnName + "#"); ???????????????????????????????doc.Range.Replace(reg, new ReplaceImage2(nValue), false); ???????????????????????????} ???????????????????????} ???????????????????????else doc.Range.Replace("$"+dc.ColumnName+"$", nValue, false, false); ???????????????????} ???????????????????catch (Exception) ???????????????????{ ???????????????????} ???????????????} ???????????} ???????????doc.Save("ceshi.doc"); ???????} ???} ???public class ReplaceImage1 : IReplacingCallback ???{ ???????public string imageUrl; ???????public ReplaceImage1(string url) ???????{ ???????????this.imageUrl = url; ???????} ???????public ReplaceAction Replacing(ReplacingArgs e) ???????{ ???????????//获取当前节点 ???????????var node = e.MatchNode; ???????????//获取当前文档 ???????????Document doc = node.Document as Document; ???????????DocumentBuilder builder = new DocumentBuilder(doc); ???????????//将光标移动到指定节点 ???????????builder.MoveTo(node); ???????????//插入图片 ???????????builder.InsertImage(imageUrl); ???????????return ReplaceAction.Replace; ???????} ???} ???public class ReplaceImage2 : IReplacingCallback ???{ ???????public string imageUrl; ???????public ReplaceImage2(string url) ???????{ ???????????this.imageUrl = url; ???????} ???????public ReplaceAction Replacing(ReplacingArgs e) ???????{ ???????????//获取当前节点 ???????????????????if (!string.IsNullOrEmpty(imageUrl)) ???????????{ ???????????????var node = e.MatchNode; ???????????????Document doc = node.Document as Document; ???????????????DocumentBuilder builder = new DocumentBuilder(doc); ???????????????builder.MoveTo(node); ???????????????Shape shape = new Shape(doc, ShapeType.Image); ???????????????shape.ImageData.SetImage(imageUrl); ???????????????shape.Top = 0; ???????????????shape.Width = 80; ???????????????shape.Height = 100; ???????????????shape.HorizontalAlignment = HorizontalAlignment.Center; ???????????????CompositeNode node1 = shape.ParentNode; ???????????????builder.InsertNode(shape); ???????????} ???????????return ReplaceAction.Replace; ???????} ???}}

模板:

效果图:

Asponse.Words进行Word替换

原文地址:http://www.cnblogs.com/huage-1234/p/7755670.html

知识推荐

我的编程学习网——分享web前端后端开发技术知识。 垃圾信息处理邮箱 tousu563@163.com 网站地图
icp备案号 闽ICP备2023006418号-8 不良信息举报平台 互联网安全管理备案 Copyright 2023 www.wodecom.cn All Rights Reserved