Aspose.Words对于Word的操作
对于word操作一般是对已有word模板的操作,直接新建的不考虑,网上教程很多,自己看吧
一般有以下几种办法(忘了具体几种了,一般情况下以下就够了)
1、通过书签替换
顾名思义,就是先定义一个书签,然后在书签的位置填进去相应的数据或图片,具体操作
1 >先在word上插入->书签->定义书签名
2 >在程序中使用
string tmppath = Server.MapPath("~/" + path);Document doc = new Document(tmppath);Document doc = new Document(tmppath); //载入模板 Aspose.Words.DocumentBuilder builder = new Aspose.Words.DocumentBuilder(doc); builder.MoveToBookmark("zy");//跳转到书签名是zy的位置 builder.Write("书签位置要替换的文字");
doc.Range.Replace(Key, Value, false, false);
图片还有一个根据位置定位到某个位置然后粘贴,实例如下
builder.InsertImage(img, RelativeHorizontalPosition.Page, left, RelativeVerticalPosition.TopMargin, 0, width, height, WrapType.None);
参数具体含义有很明了,就不说了。
2、通过表格单元格替换
一般word模板里边基本就是表格,所以对表格的操作很重要
先找到相应的表格
Document doc = new Document(tmppath); //载入模板 Aspose.Words.DocumentBuilder builder = new Aspose.Words.DocumentBuilder(doc); NodeCollection allTables = doc.GetChildNodes(NodeType.Table, true); Table table = allTables[0] as Aspose.Words.Tables.Table;//拿到第一个表格
然后对表格进行操作,但是默认的表格的单元格是只可读的,于是我想出一个办法,就是先取到单元格A存储到一个新建的单元格对象单元格B里面,然后修改单元格B,最后删除单元格A并且把单元格B添加到单元格A中,这样就完美的替换了单元格了,而且原来单元格的宽高都不用在调整了,于是我把它封装成了一个方法示例如下
/// <summary>/// 修改表中的数据/// </summary> /// <param name="table">表名</param> /// <param name="doc">文档</param> /// <param name="row">要修改行</param> /// <param name="cell">要修改列</param> /// <param name="value">修改后的值</param> private static Table EditCell(Table table, Document doc, int row, int cell, string value) { Cell c = table.Rows[row].Cells[cell]; Paragraph p = new Paragraph(doc); p.AppendChild(new Run(doc, value)); p.ParagraphFormat.Style.Font.Size = 10; p.ParagraphFormat.Style.Font.Name = "华文楷体"; c.FirstParagraph.Remove(); c.AppendChild(p); table.Rows[row].Cells[cell].Remove(); table.Rows[row].Cells.Insert(cell, c); return table; }
3 >就是删除原来的单元格然后再添加一个新建的单元格,然后自定义属性(宽高等)
这个不推荐,只是原来没有想好2方法的替代品,是老版本,但是还是显示一下吧,纪念自己的努力
方法如下
private static Aspose.Words.Tables.Cell CreateCell(string value, Document doc, double cellwidth){Aspose.Words.Tables.Cell c1 = new Aspose.Words.Tables.Cell(doc); c1.CellFormat.Width = cellwidth; c1.CellFormat.Borders.LineStyle = LineStyle.Single; //c1.CellFormat.WrapText = false; Aspose.Words.Paragraph p = new Paragraph(doc); p.AppendChild(new Run(doc, value)); //Table table = new Table(doc); //p.AppendChild(table); p.ParagraphFormat.Style.Font.Size = 10; p.ParagraphFormat.Style.Font.Name = "华文楷体"; c1.AppendChild(p); return c1; }
4 >添加数据到单元格,只适用于表格,很是推荐,很好用,具体就是直接向某个表格的某一行的某一列添加值,示例如下:
builder.MoveToCell(0, 31, 1, 0);//先跳转到第0个表格,第31行,第1列 builder.Write("要写入的数据"); 原文地址:http://www.cnblogs.com/itljf/p/5859445.html
破解aspose.words.dll
http://download.csdn.net/detail/u013178416/9739380
Aspose.Words对于Word的操作相关推荐
- .net 使用 Aspose.Words 进行 Word替换操作
.net 使用 Aspose.Words 进行 Word替换操作 原文 http://www.cnblogs.com/codealone/archive/2013/04/02/2995224.html ...
- Aspose.Java实现word转pdf,添加水印等操作
Aspose.Java实现word转pdf,添加水印等操作 一. word转pdf 二. 文档插入水印 Aspose是一款商用版控件,支持各类文档操作,这里主要介绍如何在Springboot项目中使用 ...
- Aspose Word常用操作
Aspose Word常用操作 使用Aspose Word操作模版 创建Document对象 常用方法 使用Aspose Word操作模版 刚好最近学到Aspose Word,有些心得,记录下来.下面 ...
- aspose关于excel和word的操作
aspose关于文档的操作 1.word拼接,word插入文字和图片 2.excel拼接,excel插入文字和图片 3.Java后台解析HTML 详情如下: 1.word拼接,word插入文字和图片 ...
- 用Aspose.Words 从Word文档中提取表格数据
用Aspose.Words 从Word文档中提取表格数据 对于某些项目,开发人员需要从Word文档中提取数据并导出到数据库.最大的挑战是必须支持现有Word文档. 相同格式且带多个数据块的Word文档 ...
- aspose win/linux WORD转PDF(及其解决乱码方式)
aspose win/linux WORD转PDF(及其解决乱码方式) 1.工具类 2.控制台 3.解决乱码 4.JAR包 之前自己用的docm4j 本地进行转换是ok 在服务器中就异常了: 后来在网 ...
- Aspose工具实现word和ppt转pdf功能及遇到的一些问题
Aspose工具包从word和ppt转到pdf的实现过程 直接放项目地址 说一下实现过程中遇到的坑 直接放项目地址 https://github.com/lichangliu1098/File2Pdf ...
- 计算机硬件Word,[计算机硬件及网络]word的操作.doc
[计算机硬件及网络]word的操作.doc Office Word 2010高级应用技术长文档排版一.考查知识点内置样式修改与使用.新建样式.题注.交叉引用.脚注与尾注.目录.图表目录.分节符的使用. ...
- python怎么重命名word文件,Python读取word文本操作详解
本文研究的主要问题时Python读取word文本操作,分享了相关概念和实现代码,具体如下. 一,docx模块 Python可以利用python-docx模块处理word文档,处理方式是面向对象的.也就 ...
最新文章
- 更新linux内核版本,求问Linux最新内核版本以及发布日期。
- 最大子序列和问题 hdu1231
- 用yum源配合源码包安装openresty、mariadb、php7服务
- WebAPI(part8)--节点操作
- 司爱侠计算机英语教程第五版翻译,计算机英语教程 教学课件 作者 司爱侠 张强华 参考译文.doc...
- JSF 源代码赏析之FacesServlet
- Vue 双向数据绑定原理分析
- 萤石云监控地址视频播放
- Linux出现“E45: ‘readonly‘ option is set (add ! to override)”的解决方法。
- java date the type is ambiguous_java 调用方法引起歧义:The method XXX is ambiguous for the type XX...
- 天上的街市Unity游戏场景制作案例(一)
- 安卓系统源码编译系列(一)——下载安卓系统源码教程
- 『前端面试题纪实』2020/春+秋 实习
- 白帽子,强大的XSS钓鱼漏洞,怎么获取用户的真实ip
- API调用,淘宝天猫、1688、京东、拼多多商品详情(接口数据聚全)
- 百度霸屏效果SEO高质量外链纯手工外链代发技巧
- Android APN设置接口
- excel其中一个页签慢_技巧 | 只需10秒,便可对Excel多页签进行快速有效汇总
- Java设置mysql字段为null_MySQL字段的属性应该尽量设置为NOT NULL
- CAN通讯-使用Python收发CAN数据保姆级教程(包含完整代码)
热门文章
- phpcms图片无法上传
- vba 操作html,VBA IE对象的操作方法
- Servlet 编写过滤器
- 专科计算机专业大学,计算机专业大学排名 专科生学计算机专业好吗
- 三相pmsm矢量控制仿真模型_实时控制系统的时序模型及其在AUTOSAR系统仿真监控中的应用-Foundations4.1控制理论...
- dram和nand哪个难生产_空调哪个牌子好 推荐质量最好又省电的品牌
- 程序员锁死公司服务器,导致600万元资金打水漂。网友神回复
- 三星内存编码_内存条上面的编码的含义
- java quartz mybatisplus_Springboot+redis+SpringMVC+Mybatis Plus分布式开发系统源码
- adguard没有核心 core no_新媒体自学宝典(No.24)| 如何借力自媒体平台放大粉丝流量?...