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替换操作的实现代码
DLL文件下载 示例: Aspose.Words.Document doc = new Aspose.Words.Document(TempFile); Aspose.Words.DocumentBu ...
- 使用Aspose.Words将Word文档转换为Tiff格式图片文件
用Aspose组件的优点是操作Word文档不需要安装Office就可以实现. 首先需要引用Aspose.Words.dll,链接地址:链接:https://pan.baidu.com/s/1rJvjp ...
- 在C#中使用Spire.doc对word的操作总结
在C#中使用Spire.doc对word的操作总结 在最近的工程中我们要处理一些word文档.通过在网上的大量搜索,我发现大多数软件功能不是不完整就是有重复.极少数可以完全实现的word组件又要收费. ...
- Aspose.Words给word文档加水印
需求:在一些重要的Word文档需要打印时,添加水印以明出处. 方案:使用Aspose组件给word文档 代码:干货如下 /// <summary> /// Inserts a waterm ...
- WPF使用Aspose.Words导出Word文档
一.创建Word文档模板 分析需要导出的word文档,将固定的内容和由程序生成的内容分开; 创建一个word(例如:Template.doc)文档,将固定的内容按照一定的格式写入当前文档中; 打开Te ...
- C# 调用word进程操作文档关闭进程
C# 调用word进程操作文档关闭进程 作者:Jesai 时间:2018-02-12 20:36:23 前言: office办公软件作为现在主流的一款办公软件,在我们的日常生活和日常工作里面几乎每天都 ...
- c#调用Aspose.Word组件操作word 插入文字/图片/表格 书签替换套打
由于NPOI暂时没找到书签内容替换功能,所以换用Apose.Word组件. using System; using System.Collections.Generic; using System.C ...
- Aspose.Words.Tables.Row类操作word表格行
http://www.aspose.com/docs/display/wordsnet/Aspose.Words.Tables.Row+Class Retrieves the index of a r ...
- Aspose.Words进行Word替换(插入图片和水印)
由于最近一直在忙着做着Word打印模板的一些工作,就整理一些Asponse.Words对Word文档进行操作的资料. using System; using System.Collections.Ge ...
随机推荐
- 导入第三方Jar包到Nexus私服
公司里面有自己的公共代码库,如果希望交给Maven进行管理,可以搭建Nexus服务器,将公司的公共代码库的代码打成jar包,然后上传到Nexus私服服务器上,项目组的成员就可以在Maven项目中通过添 ...
- 部署openfire到linux环境下
1.java环境部署:具体参考 http://blog.csdn.net/gufachongyang02/article/details/45337379 2.ant环境部署: 具体参考 http:/ ...
- 双重检验的单例模式,为什么要用volatile关键字
双重检验的单例模式是比较推荐的单例写法,在该代码中的单例对象的是用volatile关键字修饰的.这时就产生的一个疑问,为什么需要volatile来修饰呢?上网查看多个博客,下面简单通俗分析一下当中的原 ...
- poj2528(线段树+区间离散)
题意:那个城市里要竞选市长,然后在一块墙上可以贴海报为自己拉票,每个人可以贴连续的一块区域,后来帖的可以覆盖前面的,问到最后一共可以看到多少张海报.思路:一看就知道是线段树,只是说要利用到离散化,也不 ...
- java中日期的换算处理
JAVA8中的日期API是JSR-310的实现,并且是工作在ISO-8601日历系统基础上的,但我们也可以在非ISO的日历上.JDK8的日期API大致分为以下几个包: java.time包:JDK8中 ...
- [dig]使用dig查看当前网络连通情况
1. dig domain, 通过server可以查到该域名被哪个server给解析了 2. dig @dns domain 不走/etc/resolve.conf,直接走指定的dns ------- ...
- CAS (13) —— CAS 使用Maven Profile支持多环境编译
CAS (13) -- CAS 使用Maven Profile支持多环境编译 摘要 CAS 使用Maven Profile支持多环境编译 版本 tomcat版本: tomcat-8.0.29 jdk版 ...
- 教你如何禁用U盘、屏蔽USB端口的三种方法
如果想禁止所有U盘的使用,则可以通过修改注册表来实现. 打开”运行“对话框,输入命令“Regedit”进入注册表界面. 依次展开“HKEY_LOCAL_MACHINE”→“SYSTEM”→“ Cu ...
- QButton
Button.h #pragma once // QButton class QButton : public CButton { DECLARE_DYNAMIC(QButton) // Constr ...
- hbase源码系列(二)HTable 探秘
hbase的源码终于搞一个段落了,在接下来的一个月,着重于把看过的源码提炼一下,对一些有意思的主题进行分享一下.继上一篇讲了负载均衡之后,这一篇我们从client开始讲吧,从client到master ...