由于NPOI暂时没找到书签内容替换功能,所以换用Apose.Word组件.

using System;
using System.Collections.Generic;
using System.ComponentModel;
using System.Data;
using System.Drawing;
using System.Linq;
using System.Text;
using System.Windows.Forms;
using Aspose.Words;
using Aspose.Words.Drawing;namespace WordNPOI
{public partial class Form2 : Form{public Form2(){InitializeComponent();}private void Form2_Load(object sender, EventArgs e){}private void button1_Click(object sender, EventArgs e){try{Utils.ExcelDataTableConverter edc = new Utils.ExcelDataTableConverter("60岁以上人员.xlsx");DataTable dt = edc.ExcelToDataTable("sheet1", true);int rowCount = dt.Rows.Count;int columnCount = dt.Columns.Count;Aspose.Words.Document doc = new Aspose.Words.Document("TEMPLATE.DOCX");Aspose.Words.DocumentBuilder builder = new Aspose.Words.DocumentBuilder(doc);builder.MoveToBookmark("BK001");builder.StartTable();//开始画Table            builder.ParagraphFormat.Alignment = ParagraphAlignment.Center; // RowAlignment.Center;                string str = string.Empty;builder.RowFormat.Height = 20;//添加列头for (int i = 0; i < columnCount; i++){builder.InsertCell();//Table单元格边框线样式builder.CellFormat.Borders.LineStyle = LineStyle.Single;//Table此单元格宽度builder.CellFormat.Width = 600;//此单元格中内容垂直对齐方式builder.CellFormat.VerticalAlignment = Aspose.Words.Tables.CellVerticalAlignment.Center;builder.CellFormat.HorizontalMerge = Aspose.Words.Tables.CellMerge.None;builder.CellFormat.VerticalMerge = Aspose.Words.Tables.CellMerge.None;//字体大小builder.Font.Size = 10;//是否加粗builder.Bold = true;//向此单元格中添加内容builder.Write(dt.Columns[i].ColumnName);}builder.EndRow();//添加每行数据for (int i = 0; i < rowCount; i++){for (int j = 0; j < columnCount; j++){str = dt.Rows[i][j].ToString();//http://www.cnblogs.com/geovindu/p/4106418.html//http://www.cnblogs.com/wuhuacong/archive/2012/08/30/2662961.html//插入Table单元格builder.InsertCell();//Table单元格边框线样式builder.CellFormat.Borders.LineStyle = LineStyle.Single;//Table此单元格宽度 跟随列头宽度//builder.CellFormat.Width = 500;//此单元格中内容垂直对齐方式builder.CellFormat.VerticalAlignment = Aspose.Words.Tables.CellVerticalAlignment.Center;builder.CellFormat.HorizontalMerge = Aspose.Words.Tables.CellMerge.None;builder.CellFormat.VerticalMerge = Aspose.Words.Tables.CellMerge.None;//字体大小builder.Font.Size = 10;//是否加粗builder.Bold = false;//向此单元格中添加内容builder.Write(str);}//Table行结束builder.EndRow();}builder.EndTable();//doc.Range.Bookmarks["BK001"].Text = "";    // 清掉标示  doc.Range.Bookmarks["BK002"].Text = "标题"; <span style="color:#ff6666;">//替换书签内容</span>//Shape shape = new Shape(doc, ShapeType.Image);//shape.ImageData.SetImage("1.png");//shape.Width = 600;//shape.Height = 400;//shape.HorizontalAlignment = Aspose.Words.Drawing.HorizontalAlignment.Center;if (doc.Range.Bookmarks["BK003"] != null){//builder.InsertNode(shape); //这种图片会把后面的内容盖掉builder.MoveToBookmark("BK003");var img = builder.<span style="color:#ff6666;">InsertImage</span>("1.png");img.Width = 300;img.Height = 300;img.HorizontalAlignment = Aspose.Words.Drawing.HorizontalAlignment.Center;}string saveDocFile = "1.DOCX";doc.Save(saveDocFile);if (MessageBox.Show("保存成功,是否打开文件?", "", MessageBoxButtons.YesNo) == System.Windows.Forms.DialogResult.Yes){System.Diagnostics.Process.Start(saveDocFile);}}catch (Exception ex){MessageBox.Show(ex.Message);return;}}}
}

c#调用Aspose.Word组件操作word 插入文字/图片/表格 书签替换套打相关推荐

  1. Spire.doc实现对word的操作(包括文字,表格,图片)

    1.Spire.doc包的导入 Spire.doc比较小众,因此需要在pom.xml中导入spire.doc的仓库,导入之后直接导包 <!--导入Spire--><repositor ...

  2. .net直接调用office com组件操作word与pdf

    文章目录 使用场景 一.使用步骤 1.引入库 2.调用 二.我使用时出现的bug 错误信息一 原因及解决方案 错误信息二 原因及解决方案 错误信息三 原因及解决方案 三.总结 使用场景 多个word进 ...

  3. java调用office接口_java调用com组件操作word使用总结(jacob)

    ava调用com组件操作word使用总结(jacob) 简单描述 在此处输入简单摘要 特别声明:使用java-com技术可以完成任何VBA可以完成的office文档操作; 一.准备工作 先了解一下概念 ...

  4. c#中使用Aspose.Word组件,将数据和图片导出至Word

    上一篇分享的是导出Excel的示例,今天分享将数据导出至Word,以及如何读取Word文档中的图片.用的组件包括2个,分别是Aspose.Word和Spire.Doc.这2个组件,都可以从Nuget中 ...

  5. Word实用操作技巧之文字编辑(转)

    Word实用操作技巧之文字编辑(转) 为了发挥Word 的强大功能,建议你在使用时试试以下的技巧,灵活运用这些技巧,可以使你迅速成为Word高手(这里我们以Word XP为例,其他版本请参考操作). ...

  6. 在Word文档中插入矢量图片

    在Word文档中插入矢量图片 在 Word 文档中插入矢量图片,可以按照以下步骤进行: 打开 Word 文档,点击插入选项卡,选择"图片"命令. 在弹出的"插入图片&qu ...

  7. OpenXml操作Word的一些操作总结.无word组件生成word.

    OpenXml相对于用MS提供的COM组件来生成WORD,有如下优势: 1.相对于MS 的COM组件,因为版本带来的不兼容问题,及各种会生成WORD半途会崩溃的问题. 2.对比填满一张30多页的WOR ...

  8. php com操作word,php 操作word 的使用com组件的总结

    set_time_limit(0);//不超时error_reporting(E_ALL);//打印所有的错误$empty = new VARIANT(); com_load_typelib('Wor ...

  9. 在Word 2007中轻松插入或创建表格

    插入表格 在 Microsoft Office Word 2007 中,可以通过从一组预先设好格式的表格(包括示例数据)中选择,或通过选择需要的行数和列数来插入表格.您可以将表格插入到文档中或将一个表 ...

最新文章

  1. 【BZOJ 3160】 3160: 万径人踪灭 (FFT)
  2. 通过Athens搭建go私服
  3. mp4文件时长 c++源码_【C语言】如何使用头文件 .h 编译 C 源码!so easy!
  4. [改善Java代码]构造函数尽量简化
  5. CentOS 7 + nginx-1.12 + php-7.2 + MySQL-5.7
  6. 【转】RunTime.getRunTime().addShutdownHook用法
  7. linux是否32位系统文件夹,技术|如何判断Unix系统的一个库文件是32位还是64位的...
  8. Android跨进程通信--AIDL原理解析
  9. librosa.stft librosa.core.stft
  10. 计算机其它离的360云盘,win7系统将360云盘文件快速转移到百度云盘的方法
  11. windows 用户的完美“瘦身”攻略
  12. 《士兵突击》哪些最精彩的话语
  13. 基于二阶盲源分离方法执行模态识别研究(Matlab代码实现)
  14. 毕业两年,我完成了月薪3k到月薪13k的转变
  15. 高性能mysql学习笔记--复制
  16. Java实现微信公众号扫描二维码未关注时跳转关注界面已关注跳转业务界面
  17. 选择一个日志文件系统
  18. [转载] Elasticsearch如何做到亿级数据查询毫秒级返回
  19. k8s之搭建单机集群
  20. #define宏的边际效应

热门文章

  1. 投稿[1]-SCI投稿之CRediT author statement
  2. IT日语/英语_编程常见/常用单词_经验分享
  3. ANSYS结构非线性分析指南连载四--第四章 材料非线性分析 (二)
  4. 【vue】增删查改练习
  5. 发现校内网好友买卖的一个小漏洞!并成功实现自动好友买卖!
  6. 2019个税革新,我们一年能省多少钱~
  7. 中国前10强做数据定制服务的公司排名
  8. SOAP HTTP Binding
  9. 大数据时代如何建设动漫品牌
  10. synergy 控制客户端电脑很卡_synergy一个鼠标键盘控制多台电脑