文档章节

Aspose.Words对Word的操作

wen1512
 wen1512
发布于 2016/09/20 14:04
字数 772
阅读 165
收藏 0

对于word操作一般是对已有word模板的操作,直接新建的不考虑,网上教程很多,自己看吧 一般有以下几种办法(忘了具体几种了,一般情况下以下就够了) 1、通过书签替换 顾名思义,就是先定义一个书签,然后在书签的位置填进去相应的数据或图片,具体操作 1 >先在word上插入->书签->定义书签名 2 >在程序中使用

Document doc = new Document(tmppath); //载入模板
Aspose.Words.DocumentBuilder builder = new Aspose.Words.DocumentBuilder(doc);
builder.MoveToBookmark("zy");//跳转到书签名是zy的位置
builder.Write("书签位置要替换的文字");

图片还有一个根据位置定位到某个位置然后粘贴,实例如下

  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("要写入的数据");

注意:行和列都是从0开始的,不是从1开始的 5 >通过替换域名的方法 和书签的方法相似。

© 著作权归作者所有

wen1512
粉丝 1
博文 38
码字总数 32057
作品 0
大庆
高级程序员
私信 提问
没有安装Microsoft Words的情况下读写Word文档的控件Aspose.Words​

Aspose.Words控件是一个类库,使您可以执行大部分文件处理的工作。 Aspose.Words支持DOC,OOXML,RTF,HTML,OpenDocument,PDF,XPS,EPUB和其他格式。采用Aspose.Words您可以生成,修改,转...

netkongjian
2014/06/21
0
0
打印或者转换整个文件或个别网页为TIFF的控件Aspose.Words

Aspose.Words控件是一个类库,使您可以执行大部分文件处理的工作。 Aspose.Words支持DOC,OOXML,RTF,HTML,OpenDocument,PDF,XPS,EPUB和其他格式。采用Aspose.Words您可以生成,修改,转...

netkongjian
2014/06/21
0
0
Aspose.Words组件介绍及使用—基本介绍与DOM概述 (转载)

阅读目录 1.基本介绍 2.文档对象模型概述 本博客所有文章分类的总目录:http://www.cnblogs.com/asxinyu/p/4288836.html 本博客其他.NET开源项目文章目录:http://www.cnblogs.com/asxinyu/...

~少司命~
2015/12/02
44
0
Aspose.Words 系列组件介绍 | 附免费下载

Aspose.Words产品系列 Aspose.Words for.NET 目标Windows窗体、ASP.NET、WPF、WCF或基于.NET Framework 2.0或更高版本的任何应用程序 Aspose.Words forJava 可用于基于Java SE或EE的桌面,W...

可乐瓶的小辣椒
2017/11/06
0
0
Aspose.Words for .NET 14.3.0 发布

Aspose.Words for .NET 14.3.0 发布,此版本更新内容如下: 此版本允许 Java 和 .NET 开发者插入 OLE 对象,比如另一个 Microsoft Word 文档,或者是 Word 文档中的 Microsoft Excel 图表 添...

oschina
2014/04/20
1K
0

没有更多内容

加载失败,请刷新页面

加载更多

GMTC2019|闲鱼-基于Flutter的架构演进与创新

2012年应届毕业加入阿里巴巴,主导了闲鱼基于Flutter的新混合架构,同时推进了Flutter在闲鱼各业务线的落地。未来将持续关注终端技术的演变及趋势 Flutter的优势与挑战 Flutter是Google开源的...

阿里云官方博客
10分钟前
0
0
ubuntu安装软件 报错:下列软件包有未满足的依赖关系

ubuntu安装软件,一直出现以下错误,还纳闷为毛都和 lksctp-tools 有关,上网差发现可能是 lksctp-tools安装错误。 pvc@pvc-Vostro-3650:~$ sudo apt-get install libnet1-dev 正在读取软件包...

琴麻岛
11分钟前
0
0
GMTC2019|闲鱼-基于Flutter的架构演进与创新

2012年应届毕业加入阿里巴巴,主导了闲鱼基于Flutter的新混合架构,同时推进了Flutter在闲鱼各业务线的落地。未来将持续关注终端技术的演变及趋势 Flutter的优势与挑战 Flutter是Google开源的...

zhaowei121
13分钟前
0
0
一段话系列-在抢购秒杀中,如何解决Redis读写分离带来的,主从同步延迟问题?

在抢购秒杀中,我们将数据缓存在Redis中,Redis我们为了提高QPS,使用了读写分离的架构,随之而来的便是主从同步延迟问题;在这里,我认为针对于主从同步延迟问题是不可避免的,我给出的解决...

EasyProgramming
14分钟前
0
0
linux sudo java : command not found

运行sudo java -version报错 [admin@localhost xxx]$ sudo java -version sudo: java: command not found 原因: 当使用sudo去执行一个程序时,处于安全的考虑,这个程序将在一个新的、最小化...

朝如青丝暮成雪
18分钟前
1
0

没有更多内容

加载失败,请刷新页面

加载更多

返回顶部
顶部