真实的国产乱ⅩXXX66竹夫人,五月香六月婷婷激情综合,亚洲日本VA一区二区三区,亚洲精品一区二区三区麻豆

成都創(chuàng)新互聯(lián)網(wǎng)站制作重慶分公司

word導(dǎo)出java代碼 java實(shí)現(xiàn)導(dǎo)出word

java導(dǎo)出word表格

首先我用的技術(shù)是 poi

讓客戶滿意是我們工作的目標(biāo),不斷超越客戶的期望值來自于我們對(duì)這個(gè)行業(yè)的熱愛。我們立志把好的技術(shù)通過有效、簡(jiǎn)單的方式提供給客戶,將通過不懈努力成為客戶在信息化領(lǐng)域值得信任、有價(jià)值的長(zhǎng)期合作伙伴,公司提供的服務(wù)項(xiàng)目有:空間域名、虛擬主機(jī)、營銷軟件、網(wǎng)站建設(shè)、叢臺(tái)網(wǎng)站維護(hù)、網(wǎng)站推廣。

這是代碼,一個(gè)工具類得調(diào)用

public class WordUtil {

/**

* 基于模板文件導(dǎo)出 word 文檔,此方法主要是用來處理文檔中需要替換的文本內(nèi)容,對(duì)圖片和表格無效

*

* @param templatePath

* 模板文件的路徑,要求路徑中要包含全名,并且模板文件只能是 07 及以上格式,即 docx 的文件

* @param destFilePath

* 導(dǎo)出文件的存放路徑,包含文件名,例如,E:/test/小區(qū)公告.docx

* @param data

* 用來替換文檔中預(yù)定義的字符串,要求預(yù)定義的字符串與 data 中的 key 值要相同

*/

public static void exportWordByTemplate(String templatePath,

String destFilePath, MapString, String data) {

FileOutputStream out = null;

XWPFDocument doc = null;

try {

doc = new XWPFDocument(POIXMLDocument.openPackage(templatePath));

ListXWPFRun listRun;

ListXWPFParagraph listParagraphs = doc.getParagraphs();

for (int i = 0; i listParagraphs.size(); i++) {

listRun = listParagraphs.get(i).getRuns();

for (int j = 0; j listRun.size(); j++) {

if (data.get(listRun.get(j).getText(0)) != null) {

String val = data.get(listRun.get(j).getText(0));

listRun.get(j).setText(val, 0);

}

}

}

File destFile = new File(destFilePath);

if (!destFile.getParentFile().exists()) {

destFile.getParentFile().mkdirs();

}

out = new FileOutputStream(destFilePath);

doc.write(out);

} catch (IOException e) {

e.printStackTrace();

} finally {

try {

if (out != null)

out.close();

} catch (IOException e) {

e.printStackTrace();

}

}

}

/**

* 基于模板文件導(dǎo)出 word 文檔,該方法支持03格式,但是此方法只能保留文檔內(nèi)容,不能保留文檔中的樣式和圖片,建議將模板使用 07 的格式保存

*

* @param templatePath

* 模板文件的路徑

* @param destFilePath

* 導(dǎo)出文件的存放路徑,包含文件名,例如,E:/test/小區(qū)公告.doc

* @param data

* 用來替換文檔中預(yù)定義的字符串,要求預(yù)定義的字符串與 data 中的 key 值要相同

*/

public static void export03WordByTemplate(String templatePath,

String destFilePath, MapString, String data) {

try {

WordExtractor doc = new WordExtractor(new FileInputStream(

templatePath));

String content = doc.getText();

for (String key : data.keySet()) {

content = content.replaceAll(key, data.get(key));

}

byte b[] = content.getBytes();

ByteArrayInputStream bais = new ByteArrayInputStream(b);

POIFSFileSystem fs = new POIFSFileSystem();

DirectoryEntry directory = fs.getRoot();

directory.createDocument("WordDocument", bais);

FileOutputStream ostream = new FileOutputStream(destFilePath);

fs.writeFilesystem(ostream);

bais.close();

ostream.close();

} catch (FileNotFoundException e) {

e.printStackTrace();

} catch (IOException e) {

e.printStackTrace();

}

}

public static void main(String[] args) throws Exception {

MapString, String maps = new HashMapString, String();

maps.put("appellation", "萬達(dá)公寓業(yè)主:");

maps.put(

"main_body",

"輸出的內(nèi)容");

maps.put("date", "2013年1月23日");

exportWordByTemplate("E:/sss 2.docx", "E:/test/test.doc", maps);

}

}

"E:/sss 2.docx 模板存放的地址。

E:/test/test.doc 新生成的地址。

java程序?qū)С鰓ord文檔,需要樣式設(shè)置為緊縮,跪求高手指點(diǎn),代碼如下,求補(bǔ)充

1-apache的POI,此方法對(duì)Excel的導(dǎo)出做的很好,目前對(duì)Word的導(dǎo)出方面的功能尚未完全。

2-純JavaScript腳本實(shí)現(xiàn)。主要通過客戶端調(diào)用本機(jī)Office組件來實(shí)現(xiàn)。

3-在JSP頁面引入頭文件實(shí)現(xiàn)。

純JavaScript腳本實(shí)現(xiàn)細(xì)節(jié)方面大體是創(chuàng)建一個(gè)word組件ActiveXObject('Word.Application'),用js通過表ID取得表內(nèi)容然后保存到word,要注意的是js實(shí)現(xiàn)有很多不好的地方,例如Internet選項(xiàng)需要把ActiveX空間全部啟用,安全級(jí)別設(shè)置為中。這樣的話豈不是每臺(tái)機(jī)器都要配置一下。其次每次生成word文檔以后彈出對(duì)話框(無法保存此文件,因?yàn)樗言趧e處打開(C:\...\STARTUP\Powerword.dot)),出現(xiàn)此問題就需要把C:\Documents and Settings\當(dāng)前用戶名\Application Data\Microsoft\Word\STARTUP下的Powerword.dot文件刪除,每次遇到此問題就需要?jiǎng)h除文件來解決,十分不方便。

JSP頁面引入來實(shí)現(xiàn)Word保存就方便多了,但是也有不足的地方,首先如果需要引入

meta http-equiv="Content-Type" content="application/msword; charset=gb2312" /

如果需要下載的話就引入

%@ page contentType="application/msword; charset=gb2312" %

其實(shí)如果大家用框架做就方便多了,比如Struts2。在Action里直接寫如下代碼:

if(out!=null){

String fileName="";

fileName+="評(píng)價(jià)報(bào)告.doc";

try {

HttpServletResponse response = ServletActionContext.getResponse();

response.setHeader("Content-disposition","attachment; filename="+new String(fileName.getBytes("GB2312"), "8859_1"));

} catch (UnsupportedEncodingException e) {

e.printStackTrace();

}

out是jsp頁面表單元素,一個(gè)button,用于提交表單到相應(yīng)Action進(jìn)行Word下載。Action設(shè)置jsp頁面頭文件。這樣每次點(diǎn)擊button就可以把相應(yīng)jsp頁面的內(nèi)容保存到Word中并且支持下載,Word中內(nèi)容并且是可編輯狀態(tài)。

不足的地方在于由于表內(nèi)容是動(dòng)態(tài)生成,有的需要先查看在下載Word,就需要另外建立一個(gè)新JSP頁面進(jìn)行Word下載,當(dāng)然首先要在struts.xml里配置好頁面轉(zhuǎn)向。

新建立的頁面?zhèn)髦低榭错撁嬉3忠粯印?/p>

怎么用java導(dǎo)出word

java導(dǎo)出word代碼如下:

package com.bank.util;

import java.awt.Color;

import java.io.FileOutputStream;

import java.io.IOException;

import com.lowagie.text.Cell;

import com.lowagie.text.Document;

import com.lowagie.text.DocumentException;

import com.lowagie.text.Element;

import com.lowagie.text.Font;

import com.lowagie.text.FontFactory;

import com.lowagie.text.Image;

import com.lowagie.text.PageSize;

import com.lowagie.text.Paragraph;

import com.lowagie.text.Phrase;

import com.lowagie.text.Table;

import com.lowagie.text.pdf.BaseFont;

import com.lowagie.text.rtf.RtfWriter2;

public class WordTools {

public void createDocContext(String file) throws DocumentException,

IOException {

// 設(shè)置紙張大小

Document document = new Document(PageSize.A4);

// 建立一個(gè)書寫器(Writer)與document對(duì)象關(guān)聯(lián),通過書寫器(Writer)可以將文檔寫入到磁盤中

RtfWriter2.getInstance(document, new FileOutputStream(file));

document.open();

// 設(shè)置中文字體

BaseFont bfChinese = BaseFont.createFont("STSongStd-Light",

"UniGB-UCS2-H", BaseFont.NOT_EMBEDDED);

// 標(biāo)題字體風(fēng)格

Font titleFont = new Font(bfChinese, 12, Font.BOLD);

// 正文字體風(fēng)格

Font contextFont = new Font(bfChinese, 10, Font.NORMAL);

Paragraph title = new Paragraph("標(biāo)題");

// 設(shè)置標(biāo)題格式對(duì)齊方式

title.setAlignment(Element.ALIGN_CENTER);

title.setFont(titleFont);

document.add(title);

String contextString = "iText是一個(gè)能夠快速產(chǎn)生PDF文件的java類庫。"

+ " \n"http:// 換行

+ "iText的java類對(duì)于那些要產(chǎn)生包含文本,"

+ "表格,圖形的只讀文檔是很有用的。它的類庫尤其與java Servlet有很好的給合。"

+ "使用iText與PDF能夠使你正確的控制Servlet的輸出。";

Paragraph context = new Paragraph(contextString);

// 正文格式左對(duì)齊

context.setAlignment(Element.ALIGN_LEFT);

context.setFont(contextFont);

// 離上一段落(標(biāo)題)空的行數(shù)

context.setSpacingBefore(5);

// 設(shè)置第一行空的列數(shù)

context.setFirstLineIndent(20);

document.add(context);

//利用類FontFactory結(jié)合Font和Color可以設(shè)置各種各樣字體樣式

/**

* Font.UNDERLINE 下劃線,F(xiàn)ont.BOLD 粗體

*/

Paragraph underline = new Paragraph("下劃線的實(shí)現(xiàn)", FontFactory.getFont(

FontFactory.HELVETICA_BOLDOBLIQUE, 18, Font.UNDERLINE,

new Color(0, 0, 255)));

document.add(underline);

// 設(shè)置 Table 表格

Table aTable = new Table(3);

int width[] = {25,25,50};

aTable.setWidths(width);//設(shè)置每列所占比例

aTable.setWidth(90); // 占頁面寬度 90%

aTable.setAlignment(Element.ALIGN_CENTER);//居中顯示

aTable.setAlignment(Element.ALIGN_MIDDLE);//縱向居中顯示

aTable.setAutoFillEmptyCells(true); //自動(dòng)填滿

aTable.setBorderWidth(1); //邊框?qū)挾?/p>

aTable.setBorderColor(new Color(0, 125, 255)); //邊框顏色

aTable.setPadding(0);//襯距,看效果就知道什么意思了

aTable.setSpacing(0);//即單元格之間的間距

aTable.setBorder(2);//邊框

//設(shè)置表頭

/**

* cell.setHeader(true);是將該單元格作為表頭信息顯示;

* cell.setColspan(3);指定了該單元格占3列;

* 為表格添加表頭信息時(shí),要注意的是一旦表頭信息添加完了之后, \

* 必須調(diào)用 endHeaders()方法,否則當(dāng)表格跨頁后,表頭信息不會(huì)再顯示

*/

Cell haderCell = new Cell("表格表頭");

haderCell.setHeader(true);

haderCell.setColspan(3);

aTable.addCell(haderCell);

aTable.endHeaders();

Font fontChinese = new Font(bfChinese, 12, Font.NORMAL, Color.GREEN);

Cell cell = new Cell(new Phrase("這是一個(gè)測(cè)試的 3*3 Table 數(shù)據(jù)", fontChinese ));

cell.setVerticalAlignment(Element.ALIGN_TOP);

cell.setBorderColor(new Color(255, 0, 0));

cell.setRowspan(2);

aTable.addCell(cell);

aTable.addCell(new Cell("#1"));

aTable.addCell(new Cell("#2"));

aTable.addCell(new Cell("#3"));

aTable.addCell(new Cell("#4"));

Cell cell3 = new Cell(new Phrase("一行三列數(shù)據(jù)", fontChinese ));

cell3.setColspan(3);

cell3.setVerticalAlignment(Element.ALIGN_CENTER);

aTable.addCell(cell3);

document.add(aTable);

document.add(new Paragraph("\n"));

//添加圖片

// Image img=Image.getInstance("");

// img.setAbsolutePosition(0, 0);

// img.setAlignment(Image.RIGHT);//設(shè)置圖片顯示位置

// img.scaleAbsolute(12,35);//直接設(shè)定顯示尺寸

// img.scalePercent(50);//表示顯示的大小為原尺寸的50%

// img.scalePercent(25, 12);//圖像高寬的顯示比例

// img.setRotation(30);//圖像旋轉(zhuǎn)一定角度

// document.add(img);

document.close();

}

public static void main(String[] args){

WordTools b=new WordTools();

try {

b.createDocContext("d:/demo.doc");

} catch (DocumentException e) {

// TODO Auto-generated catch block

e.printStackTrace();

} catch (IOException e) {

// TODO Auto-generated catch block

e.printStackTrace();

}

}

}


標(biāo)題名稱:word導(dǎo)出java代碼 java實(shí)現(xiàn)導(dǎo)出word
文章來源:http://weahome.cn/article/dojsohh.html

其他資訊

在線咨詢

微信咨詢

電話咨詢

028-86922220(工作日)

18980820575(7×24)

提交需求

返回頂部