1. 程式人生 > >poi-3.8生成word文件

poi-3.8生成word文件

專案中需要生成word文件,於是在網上找出一些例子,但遇到問題不少,首先就jar包來說,一般我們操作下載excel文件,只需要一個poi-3.8-20120326.jar就足矣,然而當需要操作到word時候就需要poi-ooxml-3.8-20120326.jar,poi-scratchpad-3.8-20120326.jar,poi-ooxml-schemas-3.8-20120326.jar這個了,用這個我們可以建

XWPFDocument doc = new XWPFDocument(); 這樣一個類,但是此處依然會報錯,

java.lang.ClassNotFoundException: org.apache.xmlbeans.XmlException

才發現我們還是少了jar包,這裡我們需要用到xmlbeans-2.3.0.jar,這個jar包poi本身不提供的,需要我們去下載,

從別處扣來的一個生產word文件的demo,如下:

import java.io.FileOutputStream;

import org.apache.poi.xwpf.usermodel.Borders;
import org.apache.poi.xwpf.usermodel.BreakClear;
import org.apache.poi.xwpf.usermodel.BreakType;
import org.apache.poi.xwpf.usermodel.LineSpacingRule;
import org.apache.poi.xwpf.usermodel.ParagraphAlignment;
import org.apache.poi.xwpf.usermodel.TextAlignment;
import org.apache.poi.xwpf.usermodel.UnderlinePatterns;
import org.apache.poi.xwpf.usermodel.VerticalAlign;
import org.apache.poi.xwpf.usermodel.XWPFDocument;
import org.apache.poi.xwpf.usermodel.XWPFParagraph;
import org.apache.poi.xwpf.usermodel.XWPFRun;

public class WordTest {
	public static void main(String[] args) throws Exception {  
        XWPFDocument doc = new XWPFDocument();  
  
        XWPFParagraph p1 = doc.createParagraph();  
        p1.setAlignment(ParagraphAlignment.CENTER);  
        p1.setBorderBottom(Borders.DOUBLE);  
        p1.setBorderTop(Borders.DOUBLE);  
  
        p1.setBorderRight(Borders.DOUBLE);  
        p1.setBorderLeft(Borders.DOUBLE);  
        p1.setBorderBetween(Borders.SINGLE);  
  
        p1.setVerticalAlignment(TextAlignment.TOP);  
  
        XWPFRun r1 = p1.createRun();  
        r1.setBold(true);  
        r1.setText("The quick brown fox");  
        r1.setBold(true);  
        r1.setFontFamily("Courier");  
        r1.setUnderline(UnderlinePatterns.DOT_DOT_DASH);  
        r1.setTextPosition(100);  
  
        XWPFParagraph p2 = doc.createParagraph();  
        p2.setAlignment(ParagraphAlignment.RIGHT);  
  
        //BORDERS  
        p2.setBorderBottom(Borders.DOUBLE);  
        p2.setBorderTop(Borders.DOUBLE);  
        p2.setBorderRight(Borders.DOUBLE);  
        p2.setBorderLeft(Borders.DOUBLE);  
        p2.setBorderBetween(Borders.SINGLE);  
  
        XWPFRun r2 = p2.createRun();  
        r2.setText("jumped over the lazy dog");  
        r2.setStrike(true);  
        r2.setFontSize(20);  
  
        XWPFRun r3 = p2.createRun();  
        r3.setText("and went away");  
        r3.setStrike(true);  
        r3.setFontSize(20);  
        r3.setSubscript(VerticalAlign.SUPERSCRIPT);  
  
  
        XWPFParagraph p3 = doc.createParagraph();  
        p3.setWordWrap(true);  
        p3.setPageBreak(true);  
                  
        //p3.setAlignment(ParagraphAlignment.DISTRIBUTE);  
        p3.setAlignment(ParagraphAlignment.BOTH);  
        p3.setSpacingLineRule(LineSpacingRule.EXACT);  
  
        p3.setIndentationFirstLine(600);  
          
  
        XWPFRun r4 = p3.createRun();  
        r4.setTextPosition(20);  
        r4.setText("To be, or not to be: that is the question: "  
                + "Whether 'tis nobler in the mind to suffer "  
                + "The slings and arrows of outrageous fortune, "  
                + "Or to take arms against a sea of troubles, "  
                + "And by opposing end them? To die: to sleep; ");  
        r4.addBreak(BreakType.PAGE);  
        r4.setText("No more; and by a sleep to say we end "  
                + "The heart-ache and the thousand natural shocks "  
                + "That flesh is heir to, 'tis a consummation "  
                + "Devoutly to be wish'd. To die, to sleep; "  
                + "To sleep: perchance to dream: ay, there's the rub; "  
                + ".......");  
        r4.setItalic(true);  
//This would imply that this break shall be treated as a simple line break, and break the line after that word:  
  
        XWPFRun r5 = p3.createRun();  
        r5.setTextPosition(-10);  
        r5.setText("For in that sleep of death what dreams may come");  
        r5.addCarriageReturn();  
        r5.setText("When we have shuffled off this mortal coil,"  
                + "Must give us pause: there's the respect"  
                + "That makes calamity of so long life;");  
        r5.addBreak();  
        r5.setText("For who would bear the whips and scorns of time,"  
                + "The oppressor's wrong, the proud man's contumely,");  
          
        r5.addBreak(BreakClear.ALL);  
        r5.setText("The pangs of despised love, the law's delay,"  
                + "The insolence of office and the spurns" + ".......");  
  
        FileOutputStream out = new FileOutputStream("simple.docx");  
        doc.write(out);  
        out.close();  
  
    }  
}

相關推薦

poi-3.8生成word

專案中需要生成word文件,於是在網上找出一些例子,但遇到問題不少,首先就jar包來說,一般我們操作下載excel文件,只需要一個poi-3.8-20120326.jar就足矣,然而當需要操作到word時候就需要poi-ooxml-3.8-20120326.jar,poi-

Java POI 生成Word

  版權宣告:本文為博主原創文章,未經博主允許不得轉載。 https://blog.csdn.net/zhouseawater/article/details/54289495 在開發中有時候我們需要匯出MS word文件。最近因為需要做一個生成word檔案的功能。就將這塊拿出來和

使用poi將ueditor生成的內容匯出生成word,並以頁面檢視開啟

 將ueditor生成的內容儲存成字串,通過下面的內容拼成html,並使生成的word以頁面檢視的方式開啟。 String str = " <!--[if gte mso 9]><xml><w:WordDocument><w:

POI生成word

 XWPFDocument doc = new XWPFDocument();// 建立Word檔案     XWPFParagraph p = doc.createParagraph();// 新建一個段落     p.setAlignment(ParagraphAlign

POI生成 Word,Excel

工作需要,簡單的瞭解了一下,以下是簡單的利用POI生成的Word文件和Excel: 一:  匯入POI所需jar包(建議版本3.7以上,高一點,可用方法較多)          poi-3.8-20120326.jar          poi-examples-3.8-

模板生成word By POI+Word書籤功能

剛開始接到生成文件的時候,我的內心是拒絕的,腦海裡回想起了苦痛挪位置調畫素的jasper,和不停add各種style的POI。但是這個模組都歸我~~~老子說了算趕緊上網搜搜有沒什麼easy way。看到挺多人說起FreeMarker,大略一看So easy啊,只要做好一個w

java poi 基於模板檔案替換字元生成word

最近在公司開發個小功能,要求是基於需求提供的word文件模板來生成規定的word文件。 想了一下,就用了poi來做,這裡特別強調一點,實現該功能所需的jar包最好是:poi-scratchpad-3.

poi生成word,插入圖片,echar報表生成word,word表格

<dependency> <groupId>org.apache.poi</groupId> <artifactId>poi-ooxml</artifactId> <version>3.15</v

使用poi生成word(最全例子)

1.說明 平時的專案中,我們可能需要做大量的報告。而這些報告中,有些是固定的格式,有些是需要自定義模板來生成。如果是固定的形式的,那麼相對而言是比較好做的,但要是根據模板來生成報告,比如:word、Excel或PDF。這樣的話,可能需要我們花點時間去解決了。這篇部落格主要是

Java-POI替換Word模板中的變數,生成Word

第一步:在專案中匯入POI的jar包,以及相關的jar包。 所需的jar包列表: 下載地址:http://download.csdn.net/download/qq_34908167/10046670 第二步:建立util工具類。 public class Docx

使用poi根據模版生成word檔,支持插入數據和圖片

openxml attach charat idt lec ati pack pat eight 一、制作word模版,${xxxx}是一會要替換的內容,最下面的表格是要插入數據,根據是否以$開頭來判斷是需要替換還是插入數據,   註意如果是需要插入數據,制作的表格模版需要

java POI合併兩個word

有需要的可以將主函式中寫死的地方改為一個List。 import java.io.FileInputStream; import java.io.FileOutputStream; import java.io.InputStream; import java.io.OutputStream;

C# 動態生成word

本文以一個簡單的小例子,簡述利用C#語言開發word表格相關的知識,僅供學習分享使用,如有不足之處,還請指正。 在工程中引用word的動態庫 在專案中,點選專案名稱右鍵-->管理NuGet程式包,開啟NuGet包管理器視窗,進行搜尋下載即可,如下圖所示: 涉及知識點 _Applicat

使用freemarker模板生成Word和HTML

注:該文件是參考某個大佬的資料,根據自己的需要修改的,具體是哪位大佬的忘了,如果作者自己看到需要加明出處的,請留言你的部落格地址 業務處理: 1,在業務中建立List<Map<String, Object>> data = new ArrayList<Map<Strin

java匯出mysql資料表的結構生成word

使用sql查詢表的結構是比較簡單,其實這裡難就是難在匯出結構到word文件中。。。,使用poi-tl程式碼也簡單 一、首先jdbc工具類,這個不多說了 public class SqlUtils { private static String url = "jdbc:mysql://lo

PHP將資料庫資料批量生成word

<?php    class word{         function start(){            ob_s

獲取網頁文字框的值. 用 pageoffice 生成word

需求: 在網頁的文字框裡面填一段文字,然後就會匯出一個word文件,文件中這段字是紅色,小三,宋體,等等 第一步: 在卓正官網下載完整的試用程式包 http://www.zhuozhengsoft.com/dowm/ 第二步: 複製jar包到lib下面,複製web.xml檔

動態生成Word

在某些情況下,使用者想動態生成一個內容無法預知的公文,換句話說,就是無法事先準備一個固定格式的模板,這種情況就需要開發人員完全用編碼實現從零到圖文並茂的Word文件的動態生成功能了。這裡的“零”指的就是Word空白文件。 那如何實現Word文件的從無到有呢,下面我就把自己實現這一功能的過程介紹一

使用freemarker模板生成word

專案中最近用到這個東西,做下記錄。 如下圖,先準備好一個(office2003)word文件當做模板。文件中圖片、姓名、性別和生日已經使用佔位符代替,生成過程中將會根據實際情況進行替換。 然後將word文件另存為“Word XML文件” 使用xml編輯器開啟test.xml,

Java Web 生成Word(freemarker方式)

首先在pom檔案中加入下面這個依賴(不是Maven專案的話,把jar包匯入專案即可) <dependency> <groupId>org.freemarker</groupId> <artifactId>freemarker</ar