開源組件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.pswp.cn/news/273625.shtml
繁體地址,請注明出處:http://hk.pswp.cn/news/273625.shtml
英文地址,請注明出處:http://en.pswp.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…