導航:首頁 > 編程語言 > java模板導出word模板

java模板導出word模板

發布時間:2023-01-16 04:53:56

A. java導出word表格

首先我用的技術是 poi

這是代碼,一個工具類得調用
public class WordUtil {
/**
* 基於模板文件導出 word 文檔,此方法主要是用來處理文檔中需要替換的文本內容,對圖片和表格無效
*
* @param templatePath
* 模板文件的路徑,要求路徑中要包含全名,並且模板文件只能是 07 及以上格式,即 docx 的文件
* @param destFilePath
* 導出文件的存放路徑,包含文件名,例如,E:/test/小區公告.docx
* @param data
* 用來替換文檔中預定義的字元串,要求預定義的字元串與 data 中的 key 值要相同
*/
public static void exportWordByTemplate(String templatePath,
String destFilePath, Map<String, String> data) {
FileOutputStream out = null;
XWPFDocument doc = null;
try {
doc = new XWPFDocument(POIXMLDocument.openPackage(templatePath));
List<XWPFRun> listRun;
List<XWPFParagraph> 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();
}
}
}

/**
* 基於模板文件導出 word 文檔,該方法支持03格式,但是此方法只能保留文檔內容,不能保留文檔中的樣式和圖片,建議將模板使用 07 的格式保存
*
* @param templatePath
* 模板文件的路徑
* @param destFilePath
* 導出文件的存放路徑,包含文件名,例如,E:/test/小區公告.doc
* @param data
* 用來替換文檔中預定義的字元串,要求預定義的字元串與 data 中的 key 值要相同
*/
public static void export03WordByTemplate(String templatePath,
String destFilePath, Map<String, 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 s = new ByteArrayInputStream(b);
POIFSFileSystem fs = new POIFSFileSystem();
DirectoryEntry directory = fs.getRoot();
directory.createDocument("WordDocument", s);
FileOutputStream ostream = new FileOutputStream(destFilePath);

fs.writeFilesystem(ostream);
s.close();
ostream.close();

} catch (FileNotFoundException e) {
e.printStackTrace();
} catch (IOException e) {
e.printStackTrace();
}
}

public static void main(String[] args) throws Exception {
Map<String, String> maps = new HashMap<String, String>();
maps.put("appellation", "萬達公寓業主:");
maps.put(
"main_body",
"輸出的內容");
maps.put("date", "2013年1月23日");
exportWordByTemplate("E:/sss 2.docx", "E:/test/test.doc", maps);

}
}
"E:/sss 2.docx 模板存放的地址。
E:/test/test.doc 新生成的地址。

B. java如何根據word模板生成word文檔

先下載jacob_1.10.1.zip。
解壓後將jacob.dll放到windows/system32下面或\j2sdk\bin下面。
將jacob.jar加入項目。

/*
* Java2word.java
*
* Created on 2007年8月13日, 上午10:32
*
* To
change this template, choose Tools | Template Manager
* and open the template
in the editor.
*/

/*
* 傳入數據為HashMap對象,對象中的Key代表word模板中要替換的欄位,Value代表用來替換的值。
*
word模板中所有要替換的欄位(即HashMap中的Key)以特殊字元開頭和結尾,如:$code$、$date$……,
以免執行錯誤的替換。
*
所有要替換為圖片的欄位,Key中需包含image或者Value為圖片的全路徑(目前只判斷文件後綴名為:.bmp、
.jpg、.gif)。
*
要替換表格中的數據時,HashMap中的Key格式為「table$R@N」,其中:R代表從表格的第R行開始替換,N代表
word模板中的第N張表格;Value為ArrayList對象,ArrayList中包含的對象統一為String[],一條String[]代
表一行數據,ArrayList中第一條記錄為特殊記錄,記錄的是表格中要替換的列號,如:要替換第一列、第三列、
第五列的數據,則第一條記錄為String[3]
{「1」,」3」,」5」}。
*/

package com.word.util;

/**
*
* @author kdl
*/
import java.util.ArrayList;
import
java.util.HashMap;
import java.util.Iterator;

import com.jacob.activeX.ActiveXComponent;
import
com.jacob.com.Dispatch;
import com.jacob.com.Variant;

public class Java2word {

private boolean saveOnExit;

/**
* word文檔
*/
Dispatch doc = null;

/**
* word運行程序對象s
*/
private ActiveXComponent
word;
/**
* 所有word文檔
*/
private Dispatch
documents;

/**
* 構造函數
*/

public Java2word() {
if(word==null){
word = new
ActiveXComponent("Word.Application");
word.setProperty("Visible",new
Variant(false));
}
if(documents==null)

documents = word.getProperty("Documents").toDispatch();
saveOnExit =
false;
}

/**
* 設置參數:退出時是否保存
* @param
saveOnExit boolean true-退出時保存文件,false-退出時不保存文件
*/
public void
setSaveOnExit(boolean saveOnExit) {
this.saveOnExit =
saveOnExit;
}
/**
* 得到參數:退出時是否保存
* @return
boolean true-退出時保存文件,false-退出時不保存文件
*/
public boolean
getSaveOnExit() {
return saveOnExit;
}

/**
* 打開文件
* @param inputDoc String 要打開的文件,全路徑
*
@return Dispatch 打開的文件
*/
public Dispatch open(String inputDoc)
{
return
Dispatch.call(documents,"Open",inputDoc).toDispatch();
//return
Dispatch.invoke(documents,"Open",Dispatch.Method,new Object[]{inputDoc},new
int[1]).toDispatch();
}

/**
* 選定內容
*
@return Dispatch 選定的范圍或插入點
*/
public Dispatch select()
{
return word.getProperty("Selection").toDispatch();

}

/**
* 把選定內容或插入點向上移動
* @param selection
Dispatch 要移動的內容
* @param count int 移動的距離
*/
public
void moveUp(Dispatch selection,int count) {
for(int i = 0;i <
count;i ++)
Dispatch.call(selection,"MoveUp");

}

/**
* 把選定內容或插入點向下移動
* @param selection
Dispatch 要移動的內容
* @param count int 移動的距離
*/
public
void moveDown(Dispatch selection,int count) {
for(int i = 0;i <
count;i ++)
Dispatch.call(selection,"MoveDown");

}

/**
* 把選定內容或插入點向左移動
* @param selection
Dispatch 要移動的內容
* @param count int 移動的距離
*/
public
void moveLeft(Dispatch selection,int count) {
for(int i = 0;i <
count;i ++) {
Dispatch.call(selection,"MoveLeft");

}
}

/**
* 把選定內容或插入點向右移動
* @param
selection Dispatch 要移動的內容
* @param count int 移動的距離
*/

public void moveRight(Dispatch selection,int count) {
for(int i =
0;i < count;i ++)

Dispatch.call(selection,"MoveRight");
}

/**
*
把插入點移動到文件首位置
* @param selection Dispatch 插入點
*/
public
void moveStart(Dispatch selection) {

Dispatch.call(selection,"HomeKey",new Variant(6));
}

/**
* 從選定內容或插入點開始查找文本
* @param selection Dispatch
選定內容
* @param toFindText String 要查找的文本
* @return boolean
true-查找到並選中該文本,false-未查找到文本
*/
public boolean find(Dispatch
selection,String toFindText) {
//從selection所在位置開始查詢

Dispatch find = word.call(selection,"Find").toDispatch();

//設置要查找的內容
Dispatch.put(find,"Text",toFindText);

//向前查找
Dispatch.put(find,"Forward","True");

//設置格式
Dispatch.put(find,"Format","True");

//大小寫匹配
Dispatch.put(find,"MatchCase","True");

//全字匹配
Dispatch.put(find,"MatchWholeWord","True");

//查找並選中
return Dispatch.call(find,"Execute").getBoolean();

}

/**
* 把選定內容替換為設定文本
* @param selection
Dispatch 選定內容
* @param newText String 替換為文本
*/
public
void replace(Dispatch selection,String newText) {

//設置替換文本
Dispatch.put(selection,"Text",newText);

}

/**
* 全局替換
* @param selection Dispatch
選定內容或起始插入點
* @param oldText String 要替換的文本
* @param newText
String 替換為文本
*/
public void replaceAll(Dispatch
selection,String oldText,Object replaceObj) {
//移動到文件開頭

moveStart(selection);

if(oldText.startsWith("table") ||
replaceObj instanceof ArrayList)

replaceTable(selection,oldText,(ArrayList) replaceObj);
else
{
String newText = (String) replaceObj;

if(newText==null)
newText="";

if(oldText.indexOf("image") != -1&!newText.trim().equals("") ||
newText.lastIndexOf(".bmp") != -1 || newText.lastIndexOf(".jpg") != -1 ||
newText.lastIndexOf(".gif") != -1){

while(find(selection,oldText)) {

replaceImage(selection,newText);

Dispatch.call(selection,"MoveRight");
}

}else{
while(find(selection,oldText))
{
replace(selection,newText);

Dispatch.call(selection,"MoveRight");
}

}
}
}

/**
* 替換圖片
* @param
selection Dispatch 圖片的插入點
* @param imagePath String 圖片文件(全路徑)

*/
public void replaceImage(Dispatch selection,String imagePath)
{

Dispatch.call(Dispatch.get(selection,"InLineShapes").toDispatch(),"AddPicture",imagePath);

}

/**
* 替換表格
* @param selection Dispatch
插入點
* @param tableName String
表格名稱,形如table$1@1、[email protected]$R@N,R代表從表格中的第N行開始填充,N代表word文件中的第N張表

* @param fields HashMap 表格中要替換的欄位與數據的對應表
*/
public void
replaceTable(Dispatch selection,String tableName,ArrayList dataList)
{
if(dataList.size() <= 1) {

System.out.println("Empty table!");
return;

}

//要填充的列
String[] cols = (String[])
dataList.get(0);

//表格序號
String tbIndex =
tableName.substring(tableName.lastIndexOf("@") + 1);

//從第幾行開始填充
int fromRow =
Integer.parseInt(tableName.substring(tableName.lastIndexOf("$") +
1,tableName.lastIndexOf("@")));
//所有表格
Dispatch tables =
Dispatch.get(doc,"Tables").toDispatch();
//要填充的表格

Dispatch table = Dispatch.call(tables,"Item",new
Variant(tbIndex)).toDispatch();
//表格的所有行
Dispatch rows =
Dispatch.get(table,"Rows").toDispatch();
//填充表格
for(int
i = 1;i < dataList.size();i ++) {
//某一行數據

String[] datas = (String[]) dataList.get(i);

//在表格中添加一行
if(Dispatch.get(rows,"Count").getInt() < fromRow +
i - 1)
Dispatch.call(rows,"Add");

//填充該行的相關列
for(int j = 0;j < datas.length;j ++)
{
//得到單元格
Dispatch cell =
Dispatch.call(table,"Cell",Integer.toString(fromRow + i -
1),cols[j]).toDispatch();
//選中單元格

Dispatch.call(cell,"Select");
//設置格式

Dispatch font = Dispatch.get(selection,"Font").toDispatch();

Dispatch.put(font,"Bold","0");

Dispatch.put(font,"Italic","0");
//輸入數據

Dispatch.put(selection,"Text",datas[j]);
}
}

}

/**
* 保存文件
* @param outputPath String
輸出文件(包含路徑)
*/
public void save(String outputPath) {

Dispatch.call(Dispatch.call(word,"WordBasic").getDispatch(),"FileSaveAs",outputPath);

}

/**
* 關閉文件
* @param document Dispatch
要關閉的文件
*/
public void close(Dispatch doc) {

Dispatch.call(doc,"Close",new Variant(saveOnExit));

word.invoke("Quit",new Variant[]{});
word = null;

}

/**
* 根據模板、數據生成word文件
* @param inputPath
String 模板文件(包含路徑)
* @param outPath String 輸出文件(包含路徑)
* @param
data HashMap 數據包(包含要填充的欄位、對應的數據)
*/
public void toWord(String
inputPath,String outPath,HashMap data) {
String oldText;

Object newValue;
try {
if(doc==null)

doc = open(inputPath);

Dispatch selection =
select();

Iterator keys =
data.keySet().iterator();
while(keys.hasNext())
{
oldText = (String) keys.next();

newValue = data.get(oldText);

replaceAll(selection,oldText,newValue);

}

save(outPath);
} catch(Exception
e) {
System.out.println("操作word文件失敗!");

e.printStackTrace();
} finally {
if(doc !=
null)
close(doc);
}
}

C. java動態生成word,該怎麼解決

閱讀目錄

1. 製作 Word 模版,將你需要動態生成的欄位用${}替換。
2. 將 Word文檔保存為 xml 。
3.引入項目。


項目中需要用 java 程序生成doc 文件,網路一番,發現FreeMarker 的評價比較高。

FreeMarker是一個用Java語言編寫的模板引擎,它基於模板來生成文本輸出,至於想詳細了解 FreeMarker 的請自行網路。

  1. 製作 Word 模版,將你需要動態生成的欄位用${}替換。如:${name}、${age}

  2. 將 Word文檔保存為 xml。

  3. 引入項目。將 xml 文件更改後綴名 為 .ftl, 然後引用到你的項目中。

  4. 需要注意的問題:
    a. word 版本不能低於 2003 ,因為 2003 才開始支持 xml。

  5. 備註:

    a.template.process(),接受一個 Map 和 輸入流做為入參,Map 既是你需要動態生成到 doc 裡面的數據,欄位名必須與你在 .ftl 裡面定義的一致;

    b.如果你想利用這段代碼,需要有一個 .ftl 文件,並且在你的項目 src 目錄下面新建 template 目錄;

    c.輔助文件"FreeMarker.jar 、實例項目的.ftl "。

D. 怎麼用java導出word

java導出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 {
// 設置紙張大小
Document document = new Document(PageSize.A4);
// 建立一個書寫器(Writer)與document對象關聯,通過書寫器(Writer)可以將文檔寫入到磁碟中
RtfWriter2.getInstance(document, new FileOutputStream(file));
document.open();
// 設置中文字體
BaseFont bfChinese = BaseFont.createFont("STSongStd-Light",
"UniGB-UCS2-H", BaseFont.NOT_EMBEDDED);
// 標題字體風格
Font titleFont = new Font(bfChinese, 12, Font.BOLD);
// 正文字體風格
Font contextFont = new Font(bfChinese, 10, Font.NORMAL);
Paragraph title = new Paragraph("標題");
// 設置標題格式對齊方式
title.setAlignment(Element.ALIGN_CENTER);
title.setFont(titleFont);
document.add(title);
String contextString = "iText是一個能夠快速產生PDF文件的java類庫。"
+ " \n"// 換行
+ "iText的java類對於那些要產生包含文本,"
+ "表格,圖形的只讀文檔是很有用的。它的類庫尤其與java Servlet有很好的給合。"
+ "使用iText與PDF能夠使你正確的控制Servlet的輸出。";
Paragraph context = new Paragraph(contextString);
// 正文格式左對齊
context.setAlignment(Element.ALIGN_LEFT);
context.setFont(contextFont);
// 離上一段落(標題)空的行數
context.setSpacingBefore(5);
// 設置第一行空的列數
context.setFirstLineIndent(20);
document.add(context);
//利用類FontFactory結合Font和Color可以設置各種各樣字體樣式
/**
* Font.UNDERLINE 下劃線,Font.BOLD 粗體
*/
Paragraph underline = new Paragraph("下劃線的實現", FontFactory.getFont(
FontFactory.HELVETICA_BOLDOBLIQUE, 18, Font.UNDERLINE,
new Color(0, 0, 255)));
document.add(underline);

// 設置 Table 表格
Table aTable = new Table(3);
int width[] = {25,25,50};
aTable.setWidths(width);//設置每列所佔比例
aTable.setWidth(90); // 占頁面寬度 90%
aTable.setAlignment(Element.ALIGN_CENTER);//居中顯示
aTable.setAlignment(Element.ALIGN_MIDDLE);//縱向居中顯示
aTable.setAutoFillEmptyCells(true); //自動填滿
aTable.setBorderWidth(1); //邊框寬度
aTable.setBorderColor(new Color(0, 125, 255)); //邊框顏色
aTable.setPadding(0);//襯距,看效果就知道什麼意思了
aTable.setSpacing(0);//即單元格之間的間距
aTable.setBorder(2);//邊框
//設置表頭
/**
* cell.setHeader(true);是將該單元格作為表頭信息顯示;
* cell.setColspan(3);指定了該單元格佔3列;
* 為表格添加表頭信息時,要注意的是一旦表頭信息添加完了之後, \
* 必須調用 endHeaders()方法,否則當表格跨頁後,表頭信息不會再顯示
*/
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("這是一個測試的 3*3 Table 數據", 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("一行三列數據", fontChinese ));
cell3.setColspan(3);
cell3.setVerticalAlignment(Element.ALIGN_CENTER);
aTable.addCell(cell3);
document.add(aTable);
document.add(new Paragraph("\n"));
//添加圖片
// Image img=Image.getInstance("http://127.0.0.1:8080/testSystem/images/1_r1_c1.png");
// img.setAbsolutePosition(0, 0);
// img.setAlignment(Image.RIGHT);//設置圖片顯示位置
// img.scaleAbsolute(12,35);//直接設定顯示尺寸
// img.scalePercent(50);//表示顯示的大小為原尺寸的50%
// img.scalePercent(25, 12);//圖像高寬的顯示比例
// img.setRotation(30);//圖像旋轉一定角度
// 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();
}
}
}

E. java動態生成word,該怎麼解決

首先,通過xml模板可以將基本上所有的格式都事先鎖定,包括頁碼和分頁,只要你事先預設好就能夠通過freemarker實現生成,
接下來就是我這個問題了,目錄怎麼解決,下面是解決思路:
1:目錄的內容可以根據之前其他的內容一樣解決,通過xml模板預先設置好,
2:目錄的頁碼已經研究過是不能直接通過xml模板實現動態對應了(至少我沒搞定0.0)
3:由於不能夠一步到位,我採取了在模板中預留了一頁空白頁,只留了抬頭的目錄兩個字,然後通過查詢目錄二字進行目錄的生成,
這個功能也是我剛剛折騰出來的0.0目前還沒測試能不能用模板生成目錄後再更新目錄0.0,不過想想可以直接生成目錄應該就不用這么麻煩了,至於word生成後的修改0.0我覺得還是以後再說吧.....
整體來說應該還算完美解決了,代碼我就不在這貼出來了~
雖然中間折騰了半天走了半天彎路~
講道理還是用的jacob來實現的。。

F. java中如何導出word

如果電腦里裝的有WORD,可以通過JS新建一個WORD,並把頁面文件拷貝進去。我這有操作Excel的,word的差不多。<input type="button" onclick="javascript:method1('tableExcel');" value="導入到EXCEL">  <SCRIPT LANGUAGE="javascript"> function method1(tableid) {//整個表格拷貝到EXCEL中  var curTbl = document.getElementById(tableid);  var oXL = new ActiveXObject("Excel.Application");  //創建AX對象excel  var oWB = oXL.Workbooks.Add();  //獲取workbook對象  var oSheet = oWB.ActiveSheet;  //激活當前sheet  var sel = document.body.createTextRange();  sel.moveToElementText(curTbl);  //把表格中的內容移到TextRange中  sel.select();  //全選TextRange中內容  sel.execCommand("Copy");  //復制TextRange中內容  oSheet.Paste();  //粘貼到活動的EXCEL中  oXL.Visible = true;  //設置excel可見屬性 }  function method2(tableid) //讀取表格中每個單元到EXCEL中 {  var curTbl = document.getElementById(tableid);  var oXL = new ActiveXObject("Excel.Application");  //創建AX對象excel  var oWB = oXL.Workbooks.Add();  //獲取workbook對象  var oSheet = oWB.ActiveSheet;  //激活當前sheet  var Lenr = curTbl.rows.length;  //取得表格行數  for (i = 0; i < Lenr; i++)  {  var Lenc = curTbl.rows(i).cells.length;  //取得每行的列數  for (j = 0; j < Lenc; j++)  {  oSheet.Cells(i + 1, j + 1).value = curTbl.rows(i).cells(j).innerText;  //賦值  }  }  oXL.Visible = true;  //設置excel可見屬性 }  function getXlsFromTbl(inTblId, inWindow) {  try {  var allStr = "";  var curStr = "";  //alert("getXlsFromTbl");  if (inTblId != null && inTblId != "" && inTblId != "null") {  curStr = getTblData(inTblId, inWindow);  }   if (curStr != null) {  allStr += curStr;  }  else {  alert("你要導出的表不存在!");  return;  }   var fileName = getExcelFileName();  doFileExport(fileName, allStr);  }  catch(e) {  alert("導出發生異常:" + e.name + "->" + e.description + "!");  } }  function getTblData(inTbl, inWindow) {  var rows = 0;  //alert("getTblData is " + inWindow);  var tblDocument = document;  if (!!inWindow && inWindow != "") {  if (!document.all(inWindow)) {  return null;  }  else {  tblDocument = eval(inWindow).document;  }  }   var curTbl = tblDocument.getElementById(inTbl);  var outStr = "";  if (curTbl != null) {  for (var j = 0; j < curTbl.rows.length; j++) {  //alert("j is " + j);  for (var i = 0; i < curTbl.rows[j].cells.length; i++) {  //alert("i is " + i);  if (i == 0 && rows > 0) {  outStr += " \t";  rows -= 1;  }  outStr += curTbl.rows[j].cells[i].innerText + "\t";  if (curTbl.rows[j].cells[i].colSpan > 1) {  for (var k = 0; k < curTbl.rows[j].cells[i].colSpan - 1; k++) {  outStr += " \t";  }  }  if (i == 0) {  if (rows == 0 && curTbl.rows[j].cells[i].rowSpan > 1) {  rows = curTbl.rows[j].cells[i].rowSpan - 1;  }  }  }  outStr += "\r\n";  }  }  else {  outStr = null;  alert(inTbl + "不存在!");  }  return outStr; }  function getExcelFileName() {  var d = new Date();  var curYear = d.getYear();  var curMonth = "" + (d.getMonth() + 1);  var curDate = "" + d.getDate();  var curHour = "" + d.getHours();  var curMinute = "" + d.getMinutes();  var curSecond = "" + d.getSeconds();   if (curMonth.length == 1) {  curMonth = "0" + curMonth;  }  if (curDate.length == 1) {  curDate = "0" + curDate;  }  if (curHour.length == 1) {  curHour = "0" + curHour;  }  if (curMinute.length == 1) {  curMinute = "0" + curMinute;  }  if (curSecond.length == 1) {  curSecond = "0" + curSecond;  }   var fileName = "leo_zhang" + "_" + curYear + curMonth + curDate + "_" + curHour + curMinute + curSecond + ".csv";  //alert(fileName);  return fileName; }  function doFileExport(inName, inStr) {  var xlsWin = null;  if (!!document.all("glbHideFrm")) {  xlsWin = glbHideFrm;  }  else {  var width = 6;  var height = 4;  var openPara = "left=" + (window.screen.width / 2 - width / 2)  + ",top=" + (window.screen.height / 2 - height / 2)  + ",scrollbars=no,width=" + width + ",height=" + height;  xlsWin = window.open("", "_blank", openPara);  }   xlsWin.document.write(inStr);  xlsWin.document.close();  xlsWin.document.execCommand('Saveas', true, inName);  xlsWin.close(); }  </SCRIPT>]

G. java freemarker 通過ftl模板導出word文檔

循環列表需要加<#list datas as bean></#list>標簽的;

閱讀全文

與java模板導出word模板相關的資料

熱點內容
手機上看不到電腦上的文件 瀏覽:626
關於ps的微信公眾號 瀏覽:612
矩陣論教程 瀏覽:971
字體文件分系統嗎 瀏覽:921
編程一級考試要帶什麼證件 瀏覽:923
extjs表格修改前數據 瀏覽:612
什麼是資料庫的函數 瀏覽:722
oppo手機怎麼用數據線連接電腦 瀏覽:247
恆智天成備份文件在哪裡 瀏覽:976
電腦沒聯網怎麼拷貝文件 瀏覽:224
wps工具欄怎麼換成中文 瀏覽:338
win7和xp共享文件 瀏覽:883
蘋果4代音量鍵沒反應 瀏覽:827
怎樣打開tif文件 瀏覽:153
java下載文件zip 瀏覽:440
qq瀏覽器壓縮文件怎麼設密碼 瀏覽:526
黃埔數控編程哪裡好 瀏覽:406
mac109升級1010 瀏覽:691
在java的菜單如何導入文件 瀏覽:982
現在什麼網站銷量最高 瀏覽:760

友情鏈接