这里用到了两个dll,一个是aspose.word.dll,另外一个是ICSharpCode.SharpZipLib.dll,ICSharpCode.SharpZipLib.dll是用于批量导出word文档的,通过把文件打包成压缩包,以文件流的方式输出下载。aspose.word.dll最好使用最新版的,14.5或者更高,我使用的是14.5版本,页面是采用mvc的语法。在这里感谢赵某人为我提供的帮助。         首先制作好word模板,使用模板可以避免在代码中对word进行排版,方便简单。书签和文本域的方法分别说明。        
   (1)书签         
    打开word文档,选择“插入” →“书签”,在打开的对话框中输入要添加的书签名,书签名可以随意定义,不过最好是数据表一致,这样在代 码里就减少了判断,然后点击添加,算完成了。书签是看不见的,就隐藏的,但它确确实实存在着,书签的局限性在于:一个word文档里只有一个书签,不能同名,且若获取列表时,书签只能在文档的开头,前面不能插有其它的书签或域,而文本域则不限,但是如果是二维域的话,文档里有相同的两个字段的话,会导致后面的值会被前面的覆盖,比如有两个starttime的二维域,第二个starttime的值为变成第一个的starttime的值,而不是其真正数据表里的值。循环的列表则不会出现这样的情况。所以我用的都是文本域,相关设置如下图:
 

 

(2)文本域

        打开word文档,将光标放在插入点,选择“插入” →“文档部件”→“域”,在打开的对话框中,选择“邮件合并”→“MergeField”,输入要添加的名称,名称可以随意定义,不过最好是数据表一致,这样在代码里就减少了判断,然后点击确定,算完成了。这里特别要注意的是,定义图片的域的方式,要加Image:,如下图:
 

 
 

 
       以上的书签和域是获取单条记录的,如果是多条记录的话,则需要循环列表并填充数据,相关设置如下:
  • 书签列表,上面的编号,姓名,时间也要插入书签,table是到时循环出来的列表插入的位置:

  
  • 域,主要是注意tablestart和tableend,标题不用插入域,只需在下一行定义好域即可:
 
 
   
 

C# 导出word文档及批量导出word文档(1)的更多相关文章

  1. C# 导出word文档及批量导出word文档(4)

          接下来是批量导出word文档和批量打印word文件,批量导出word文档和批量打印word文件的思路差不多,只是批量打印不用打包压缩文件,而是把所有文件合成一个word,然后通过js来调用 ...

  2. C# 导出word文档及批量导出word文档(3)

    在初始化WordHelper时,要获取模板的相对路径.获取文档的相对路径多个地方要用到,比如批量导出时要先保存文件到指定路径下,再压缩打包下载,所以专门写了个关于获取文档的相对路径的类. #regio ...

  3. 吴裕雄--天生自然python学习笔记:python文档操作批量替换 Word 文件中的文字

    我们经常会遇到在不同的 Word 文件中的需要做相同的文字替换,若是一个一个 文件操作,会花费大量时间 . 本节案例可以找出指定目录中的所有 Word 文件(包含 子目录),并对每一个文件进行指定的文 ...

  4. C# 导出word文档及批量导出word文档(2)

    aspose.word主要是通过把读取出来的数据放到datatable里,在datable里做相应的格式的调整,再导出到word文档里.mvc和webform最后导出的语句略有不同,在mvc的cont ...

  5. ATF批量导出工具

    ATF批量导出工具 08 / 31, 2013 批量导出Atf的工具,使用是adobe atf 编码核心 先说一下关于atf的bug 当atf导出时候启用了mips选项会导致:如果纹理问长方形时上传会 ...

  6. C#操作Word的+ CKEditor 輸出成Word文件(包含圖案上傳)

    C#操作Word 参考博文: C#操作word类文件 https://www.cnblogs.com/walking/p/3571068.html C#中的Office操作专栏(21) http:// ...

  7. 批量导出access某表内容到word文档

    一.需求: 需要将表中每一条记录中的某些内容导出在一个word文档中,并将这些文档保存在指定文件夹目录下 二.界面,简单设计如下: 三.添加office相关引用 添加后可在解决方案资源管理器中看到: ...

  8. c#操作word文档之简历导出

    前言 1.写这个功能之前,我得说说微软的这个类库,用着真苦逼!是他让我有程序猿,攻城尸的感觉了.首先这个类库,从没接触过,方法与属性都不懂,还没有提示.神啊,我做这功能真是一步一卡,很潇洒啊. 2.这 ...

  9. java使用freemarker模板导出word(带有合并单元格)文档

    来自:https://blog.csdn.net/qq_33195578/article/details/73790283 前言:最近要做一个导出word功能,其实网上有很多的例子,但是我需要的是合并 ...

随机推荐

  1. poj 3114 Countries in War

    http://poj.org/problem?id=3114 #include <cstdio> #include <cstring> #include <queue&g ...

  2. 多线程信号量 Semaphore使用

    对信号量只能实施三种操作:  1. 初始化(initialize),也叫做建立(create)  2. 等信号(wait),也可叫做挂起(pend)  3. 给信号(signal)或发信号(post) ...

  3. Android的布局优化之include、merge 、viewstub

    以前在写布局的时候总是喜欢用自己熟悉的方式去写,从来也没有想过优化怎么的,后来又一次在上班的时候老大拿着我写的一个页面说我这个不行.我说这不是和设计图上的一模一样的么?怎么就不行了?然后他就跟我说了一 ...

  4. CSS伪元素before和after

    今天发现很多国外的网站和框架设计都用到了before和after,之前使用的比较少,今天试了下觉得还是很有意思的~ 说明 1. :before 和 :after将在内容元素的前后插入额外的元素::be ...

  5. Minimum Depth of Binary Tree ——LeetCode

    Given a binary tree, find its minimum depth. The minimum depth is the number of nodes along the shor ...

  6. 话说python

    前几年就职于一个大的软件公司时,开发过程中,有一个流程化的步骤要做,就是要由一个excel文档导出生成一堆sql语句.当时使用一个高手写的代码,只不过有限几行代码(应该不到100行),就完美实现此功能 ...

  7. Java---多线程之死锁

    ★ 死锁的两种情况: 简单的说下单块cpu运行多线程的情况: 大家可能平时玩电脑,可以同时挂QQ啊,玩游戏啊,打开文本啊,等等.这里,我们假设是单块cpu.也就是俗称的单核cpu. 大家可能会觉得这些 ...

  8. CSU 1021 从m个不同元素中取出n (n ≤ m)个元素的所有组合的个数,叫做从m个不同元素中取出n个元素的组合数。组合数的计算公式如下: C(m, n) = m!/((m - n)!n!) 现在请问,如果将组合数C(m, n)写成二进制数,请问转这个二进制数末尾有多少个零。

    题目链接:http://acm.hust.edu.cn/vjudge/contest/view.action?cid=82974#problem/B 解题思路:这个题目就是求因子的个数, m!/((m ...

  9. linux有用网址

    正则表达式在线测试 http://tool.oschina.net/regex

  10. Shopilex - 开源免费网店系统

    Shopilex - 开源免费网店系统 Shopilex是一套基于GPL开源协议的,MVC架构的开源电子商务网店系统,是目前中文领域里真正开源免费的网店系统.