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 ...
随机推荐
- hive外部表删除遇到的一个坑
hive外部表删除遇到的一个坑 操作步骤 创建某个表(create external table xxx location xxx) 插入数据(insert xxx select xxx from x ...
- MySQL 中联合查询效率分析
目前我有两个表,一个keywords和一个news表.keyword存放关键词是从news中提取,通newsid进行关联,两表关系如图: keywords中存有20万条数据,news中有2万条数据,现 ...
- ParseUrl
#!/usr/bin/python # coding:utf-8 import re import urlparse # 解析url def ParseUrl(url): if not re.sear ...
- 1. 感知机原理(Perceptron)
1. 感知机原理(Perceptron) 2. 感知机(Perceptron)基本形式和对偶形式实现 3. 支持向量机(SVM)拉格朗日对偶性(KKT) 4. 支持向量机(SVM)原理 5. 支持向量 ...
- 针对C程序员的 C++
C++是在C语言基础上添加面向对象扩展而成.C++在提供很多传统C语言没有的优点的同时也保持了与C语言的兼容性,这样人们就可以在一个程序中同时使用C和C++.在比赛当中,您必须使用一些基本的C++功能 ...
- Python- requests详解
Requests 是用Python语言编写,基于 urllib,采用 Apache2 Licensed 开源协议的 HTTP 库.它比 urllib 更加方便,可以节约我们大量的工作,完全满足 HTT ...
- Android 开发自己的网络收音机2——电台列表(SlidingMenu侧滑栏)
上一篇文章总体规划了这个项目的情况,今天讲讲实现电台列表.今天其实主要想讲解的是SlidingMenu,也就是我们平时说的侧滑栏,现在很多应用都有用这种UI效果.SlidingMenu侧滑栏功能实现的 ...
- 【转】jsp+servlet和SSM分别是如何实现文件上传(示例)
原文地址:https://blog.csdn.net/niceliusir/article/details/78453560 以下是jsp+servlet和SSM分别是如何实现文件上传的方法示例 两种 ...
- 【微信小程序】下拉刷新真机测试无效
根据文档的描述,做上拉加载时直接实现页面的onReachBottom()函数即可.但是要做下拉刷新时,除了实现onPullDownRefresh()函数外,还必须要在app.json中配置开启enab ...
- Java中Connection方法笔记
http://www.apihome.cn/api/java/Connection.html public interface Connectionextends Wrapper 与特定数据库的连接( ...