开源组件DocX导出Word

1、使用Docx替换Word模板里书签里内容的一个方法

using Novacode;public class ExportWord{/// <summary>/// 导出word/// </summary>/// <param name="lBookMarks">书签数据源</param>/// <param name="sTemplatePath">导出Word模板文件</param>/// <param name="sFileName">导出文件名</param>public static void ToDocx(IEnumerable<BookMarks> lBookMarks, string sTemplatePath, string sFileName){using (DocX document = DocX.Load(sTemplatePath)){List<Bookmark> booklist = new List<Bookmark>();foreach (Paragraph p in document.Paragraphs){booklist.AddRange(p.GetBookmarks());}foreach (BookMarks m in lBookMarks){foreach (Bookmark b in booklist){if (b.Name == m.Name){b.Paragraph.ReplaceText(b.Paragraph.Text, m.Text);}}}HttpContext.Current.Response.ContentType = "application/octet-stream";string mybrowser = System.Web.HttpContext.Current.Request.Browser.Browser;if (mybrowser.ToLower().IndexOf("firefox") > -1)//火狐浏览器
                {HttpContext.Current.Response.AddHeader("Content-Disposition", string.Format("attachment;filename={0}.docx", sFileName));}else{HttpContext.Current.Response.AddHeader("Content-Disposition", "attachment;filename=\"" + System.Web.HttpUtility.UrlEncode(sFileName, System.Text.Encoding.UTF8) + ".docx\"");}HttpContext.Current.Response.Clear();document.SaveAs(HttpContext.Current.Response.OutputStream);HttpContext.Current.Response.End();}}}

2、书签类

public class BookMarks{/// <summary>/// 书签Name/// </summary>public string Name{get;set;}/// <summary>/// 书签文本/// </summary>public string Text{get;set;}}

 3、使用示例

public void ExportTest(){List<BookMarks> bList = new List<BookMarks>();BookMarks b = new BookMarks();b.Name = "Title";b.Text = "DocX导出Word Test";bList.Add(b);b = new BookMarks();b.Name = "Content";b.Text = "Word正文";bList.Add(b);ExportWord.ToDocx(bList, @"E:\Template.docx", "test");}

 

转载于:https://www.cnblogs.com/Lime/p/3919937.html

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/273625.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

JDK 8 新特性 之 Strams简单使用

概述 Java 8 API添加了一个新的抽象称为流Stream&#xff0c;可以让你以一种声明的方式处理数据。 Stream 使用一种类似用 SQL 语句从数据库查询数据的直观方式来提供一种对 Java 集合运算和表达的高阶抽象。 Stream API可以极大提供Java程序员的生产力&#xff0c;让程序员写出…

Cannot open include file: jni.h: No such file or directory解决方法

在此运行Visual Studio 2012 项目时出现 #include <stdio.h> #include <jni.h> int main() { printf("Hello World"); } But when I try to build, I get the following error - 1>c:testtest.cpp(2) : fatal error C1083: Cannot open include file:…

JDK 8 新特性 之 函数接口

函数接口 定义:接口中只有唯一的一个抽象方法&#xff0c;该接口就称之为函数接口。 //函数接口 public interface FunctionInterface1 {//1、只有一个方法的接口&#xff0c;默认称之为函数接口void get(); }//非函数接口 public interface FunctionInterface2 {void get1();v…

微服务之基础知识

什么是微服务架构 微服务是系统架构上的一种设计风格&#xff0c; 它的主旨是将一个原本独立的系统拆分成多个小型服务&#xff0c;这些小型服务都在各自独立的进程中运行&#xff0c;服务之间通过基于HTTP的RESTful API进行通信协作。 被拆分成的每一个小型服务都围绕着系统中…

LightOj 1078 Basic Math

思路&#xff1a; 设输入的两个数分别为n和a,每一次所得到的数为update&#xff1a; 开始updatea,依次update分别为update*10a,这样数据会超出范围&#xff0c;则update每次为update(update*10a)%n即可&#xff0c; 如果update0,跳出循环&#xff1b; 只需证明&#xff1a;(upd…

还是俄罗斯方块之android版

前面的&#xff0c;口水话 请直接跳过。 虽然现在不比以前了 也没多少人气了&#xff0c;放到首页 都不到几百的点击量。也许博客园整体水平也是在往水的方向发展。不谈那些了&#xff0c;哥也曾经辉煌过 有过一天上千的点击量 &#xff0c;哥也曾经有过粉丝&#xff0c;被小妹…

Integer 值判断相等

Integer 值判断相等 案例&#xff1a; public class Test {public static void main(String[] args) {Integer a 127;Integer b 127;System.out.println("a b :" (a b));System.out.println("a.equals(b):"a.equals(b));String x "127";Str…

自定义快捷命令程序(VC++加批处理)

一 概述 在看《从小工到专家-程序员修炼之道》时&#xff0c;看到建议使用Shell&#xff0c;很有感触。在很多时候&#xff0c;通过键盘操作&#xff0c;比鼠标的确会块很多&#xff0c;如果能用好shell命令&#xff08;或批处理命令&#xff09; &#xff0c;的确能节省我们…

Redis 快速入门

简介 Redis 是一个 Key-Value 存储系统。和 Memcached 类似&#xff0c;它支持存储的 value 类型相对更多&#xff0c;包括 string(字符串)、 list(链表)、 set(集合)和 zset(有序集合)。这些数据类型都支持 push/pop、add/remove 及取交集并集和差集及更丰富的操作&#xff0c…

7. Adapter

转载于:https://www.cnblogs.com/anit/p/3930202.html

Redis 中常用命令

Redis 中常用命令 keys 返回满足给定 pattern 的所有 key。 127.0.0.1:6379> keys *1) "name2"2) "myzset"3) "myset7"4) "name"5) "myset6"6) "mylist"7) "mylist2"8) "myset3"9) "…

CGI与Servlet的区别和联系

1. 定义&#xff1a; CGI(Common Gateway Interface 公共网关接口)是HTTP服务器与你的或其它机器上的程序进行“交谈”的一种工具&#xff0c;其程序须运行在网络服务器上。 2. 功能&#xff1a; 绝大多数的CGI程序被用来解释处理杰自表单的输入信息&#xff0c;并在服 务器产生…

Redis sorted set 类型操作及常用命令

七个原则 Redis 是一个操作数据结构的语言工具&#xff0c;它提供基于 TCP 的协议以操作丰富的数据结构。在 Redis 中&#xff0c;数据结构这个词的意义不仅表示在某种数据结构上的操作&#xff0c;更包括了结构本身及这些操作的时间空间复杂度。Redis 定位于一个内存数据库&am…

Gradle中的buildScript代码块

在编写Gradle脚本的时候&#xff0c;在build.gradle文件中经常看到这样的代码&#xff1a; build.gradle1 2 3 4 5 6 7 8 9 buildScript {repositories {mavenCentral() } }repositories {mavenCentral() }这样子很容易让人奇怪&#xff0c;为什么repositories要声明两次哪&…

Redis List 类型操作及常用命令

七个原则 Redis 是一个操作数据结构的语言工具&#xff0c;它提供基于 TCP 的协议以操作丰富的数据结构。在 Redis 中&#xff0c;数据结构这个词的意义不仅表示在某种数据结构上的操作&#xff0c;更包括了结构本身及这些操作的时间空间复杂度。Redis 定位于一个内存数据库&am…

Hibernate查询之Criteria查询

转自&#xff1a;http://www.cnblogs.com/Laupaul/archive/2012/02/15/2353194.html Criteria是一种比hql更面向对象的查询方式。Criteria 可使用 Criterion 和 Projection 设置查询条件。可以设置 FetchMode( 联合查询抓取的模式 ) &#xff0c;设置排序方式&#xff0c;Crite…

IntelliJ Idea 常用插件

必备插件 Lombok 使用此插件可以使得我们的代码简洁&#xff0c;不用去写很多的set/get方法。使用之前需要引入 lombok 插件依赖。 JsonFormat 基于GsonFormat。快速将JSON字符串转换为实体类。它支持Jackson注释。 MyBatis Log Plugin 将 SQL 直接打印在控制台&#xff0c;不用…

jQuery 学习笔记(jQuery: The Return Flight)

第一课. ajax&#xff1a;$.ajax(url[, settings]) 练习代码&#xff1a; $(document).ready(function() {$("#tour").on("click", "button", function() {$.ajax(/photos.html, {success: function(response) {$(.photos).html(response).fadeI…

Redis Hash 类型操作及常用命令

七个原则 Redis 是一个操作数据结构的语言工具&#xff0c;它提供基于 TCP 的协议以操作丰富的数据结构。在 Redis 中&#xff0c;数据结构这个词的意义不仅表示在某种数据结构上的操作&#xff0c;更包括了结构本身及这些操作的时间空间复杂度。Redis 定位于一个内存数据库&am…

Redis set 类型操作及常用命令

七个原则 Redis 是一个操作数据结构的语言工具&#xff0c;它提供基于 TCP 的协议以操作丰富的数据结构。在 Redis 中&#xff0c;数据结构这个词的意义不仅表示在某种数据结构上的操作&#xff0c;更包括了结构本身及这些操作的时间空间复杂度。Redis 定位于一个内存数据库&am…