javaword模板
⑴ java怎樣將頁面中的信息有選擇的導出到word模板中
你應該用到java poi類庫,這個類庫可以對excel word/powerpoint等進行操作
⑵ java如何根據word模板生成word文檔
首先是action的createDoc方法:
[java]
/**
* 通過HttpCient調用報告伺服器的方法生成報告 DOC
*/
public String createDoc() throws Exception {
//定義放回成功與否的判斷碼
String prMsg="";
// 獲取當前登錄的用戶
UserVo userVo = CommonUtils.getUserMessage();
//獲取模版類型
docType = Struts2Utils.getParameter("docType");
//重新創建文檔
String creatOrnot = Struts2Utils.getParameter("creatOrnot");
//獲取組組編號參數
workgroupId = Struts2Utils.getParameter("workgroupId");
//獲取評估用例實例ID參數
evtcaseInstId = Struts2Utils.getParameter("evtcaseInstId");
if(CommonUtils.isNotNull(docType)){
//獲取項目Id
projectId = Struts2Utils.getParameter("projectId");
if(!CommonUtils.isNotNull(projectId)){
if(CommonUtils.isNotNull(this.getIdFromSession("PM_PROJECTID"))){
projectId = this.getIdFromSession("PM_PROJECTID").toString();
}else{
Struts2Utils.getRequest().setAttribute("msg", "請先選擇項目!");
}
}
if(CommonUtils.isNotNull(projectId)){
prMsg = infoSystemDescService.downloadFileByUrl(projectId, userVo.getUserId(), workgroupId, evtcaseInstId, docType, creatOrnot);
}
}
return "docList";
}
註:在我貼出來的代碼中,能看懂就行了,有些不用管他(可能是其他業務方面的判斷),關於最後返回的prMsg---代表各種狀態 主要表示成功與否或者是出錯的信息。
接著我貼出service層的方法downloadFileByUrl
[java]
</pre><p></p><p></p><pre name="code" class="java"><pre name="code" class="java">/**
* 功能:
* 1.(生成報告文檔)
* 2.保存指定URL的源文件到指定路徑下
* @param projectId
* @param userId
* @param workgroupId
* @param evtcaseInstId
* @param docType
* @param creatOrnot
* @return
* @throws Exception
*/
@SuppressWarnings("deprecation")
public synchronized String downloadFileByUrl(String projectId,String userId,String workgroupId,String evtcaseInstId,String docType,String creatOrnot) throws Exception {
String msg = "1";//"1":默認為創建成功的提示信息 "2":標識創建失敗
String srcUrl = ""; //報告伺服器的執行路徑
HttpResponse response = null;
FileOutputStream out = null;
HttpClient httpclient = null;
HttpGet httpget = null;
long time1 = System.currentTimeMillis();
//獲取保存後的路徑
TProjDoc projDoc = projectDocDao.findFileByType(userId, Integer.parseInt(docType), Long.parseLong(projectId), workgroupId,evtcaseInstId);
if(projDoc == null || (projDoc != null && CommonUtils.isNotNull(creatOrnot) && creatOrnot.equals("1"))){ //FT_任務編號_[FID]
try {
//獲取報告伺服器的執行路徑
srcUrl = xmlPathDef.getActionUrl(docType, projectId,userId,workgroupId,evtcaseInstId);
HttpParams httpParams = new BasicHttpParams();
// 設置最大連接數
ConnManagerParams.setMaxTotalConnections(httpParams, 1);
// 設置獲取連接的最大等待時間
//ConnManagerParams.setTimeout(httpParams, 6000);
// 設置每個路由最大連接數
ConnPerRouteBean connPerRoute = new ConnPerRouteBean(1);
ConnManagerParams.setMaxConnectionsPerRoute(httpParams,connPerRoute);
// 設置連接超時時間
HttpConnectionParams.setConnectionTimeout(httpParams, 6000);
// 設置讀取超時時間
if(docType.toString().equals(XmlPathDef.SPOTTEST_DOC) && docType.toString().equals(XmlPathDef.FTEST_DOC)){
HttpConnectionParams.setSoTimeout(httpParams, 2400000);
}else{
HttpConnectionParams.setSoTimeout(httpParams, 600000);
}
SchemeRegistry registry = new SchemeRegistry();
registry.register(new Scheme("http", PlainSocketFactory.getSocketFactory(), 80));
registry.register(new Scheme("https", SSLSocketFactory.getSocketFactory(), 443));
ClientConnectionManager connectionManager = new ThreadSafeClientConnManager(httpParams, registry);
httpclient = new DefaultHttpClient(connectionManager, httpParams);
httpget = new HttpGet(srcUrl);
//執行返回
response = httpclient.execute(httpget);
//如果是本機既當伺服器,又當報表伺服器,那麼就只生成一遍
String ipvalues = xmlPathDef.getRepUrl();
if(CommonUtils.isNotNull(ipvalues)){
if(ipvalues.indexOf(":") != -1){
ipvalues = ipvalues.substring(0,ipvalues.lastIndexOf(":"));
}
}
HttpEntity entity = response.getEntity();
//獲取保存後的路徑
projDoc = projectDocDao.findFileByType(userId,Integer.parseInt(docType), Long.parseLong(projectId), workgroupId,evtcaseInstId);
String filePath = "";
if(projDoc != null)
filePath = projDoc.getPath();
if(CommonUtils.isNotNull(filePath)){
String basepath = XmlPathDef.getBasePath();
String outFilePath = (basepath + filePath).replaceAll("\\\\", "\\/");
XmlPathDef.isExists(outFilePath);
File wdFile = new File(outFilePath);
out = new FileOutputStream(wdFile);
int l;
byte[] tmp = new byte[2048];
while ((l = instream.read(tmp)) != -1) {
out.write(tmp, 0, l);
}
out.flush();
out.close();
System.out.println("****************************** ");
System.out.println("");
System.out.println("*************** 恭喜! 報告創建成功 結束 ***************");
System.out.println("");
}else{
msg = "8";//說明word創建成功,但是數據沒有保存成功
response = null;
}
}else{
msg = "2";
}
} catch (ClientProtocolException e) {
msg = "7";
e.printStackTrace();
} catch (IOException e) {
msg = "7";
logger.error("資料庫報告伺服器地址配置錯誤或網路不通!!2.連接是否超時" + e.getMessage());
e.printStackTrace();
}finally{
if(out!=null){
try {
out.close();
} catch (IOException e) {
msg = "7";
logger.error("資料庫報告伺服器地址配置錯誤或網路不通!!2.連接是否超時" + e.getMessage());
e.printStackTrace();
}
}
}
}
long time2 = System.currentTimeMillis();
long numTime = time2 - time1;
if(docType.toString().equals(XmlPathDef.SPOTTEST_DOC) && docType.toString().equals(XmlPathDef.FTEST_DOC)){
if(numTime >= 2401000){
msg = "9";
}
}else{
if(numTime >= 601000){
msg = "9";
}
}
System.out.println("");
String loggerinfo = "********* 報告類型為 :" + docType + " 執行時間為: " + (time2 - time1) /1000 + " 秒!***************";
System.out.println(loggerinfo);
System.out.println("");
System.out.println("*****************************");
logger.info(loggerinfo);
return msg;
}
⑶ 求幾個最近java個人簡歷word模版
個 人 簡 歷
姓 名:xxx 性 別:xx
出生年月:xx年xx月 籍 貫: xxxx
學 歷:xx 電子郵件: xxxxxx
手 機:xxxx 現居地:xxxxxx
【自我評價】
1. 本人喜歡幫助別人,樂於協同同事共同完成任務,有很強的團隊溝通和配合意識。
2. 有比較強的開發能力,勇於面對困難和挑戰,有很好的分析問題與解決問題的能力。
3. 自學能力及適應能力強,可以快速掌握新的技術點,融入新的環境。
4. 可以連續作戰,抗高壓。
【求職意向】
目標職位:軟體開發工程師工作性質:全職
【個人技能】
1. 對ERP外貿進出口業務有較深刻的理解。
2. 熟悉會計基礎和財務電算化。
3. 熟練使用JSP, Servlet, JDBC, EL, JSTL,Tomcat下的編程開發。
4. 熟練使用Struts2、Hibernate、Spring三大框架進行組合開發。
5. 熟練使用mysql、SqlServer、oracle資料庫進行開發。
6. 熟悉使用當前一些優秀的JavaScript框架,如jquery框架等。
7. 熟悉ubuntu系統下項目的部署。
【工作經歷】
2011/7-2013/4 北京南北天地科技股份有限公司
職位:JAVA開發工程師
【項目經驗】
1.南北N7協同辦公群件平台
系統環境:Windows XP
開發工具:MyEclipse8.5, Dreamweaver8 ,Tomcat6.0 ,Mysql
項目描述:
基於J2EE平台,採用Struts2業務邏輯層使用Spring的AOP進行聲明式事務管理,使用Spring的依賴注入IOC來維護業務對象之間的關聯,持久化層使用hibernate來實現,通過DAO模式封裝PO對象,採用DWR+Jquery來實現動態授權,自定義攔截器來實現許可權的認證;採用JBPM開源的工作流引擎實現公文流轉模塊和工作流程模塊,結合Freemarker模板技術實現動態表單定義模型。
責任描述:負責報銷管理模塊、部門管理模塊和許可權管理模塊以及部分需求文檔的編寫
責任描述:
負責資料庫的搭建、各個業務流程的界面搭建及業務邏輯開發和部分
⑷ java 現在有多個word模板。
使用office2007的格式,即docx,這個是一個zip包的形式的xml文件集和,你可以直接讀寫xml文件然後重新打成zip包改名為docx就可以了。具體文件格式可以參考微軟msdn。或者使用ApachePOI
⑸ java 調用word模板實現循環套打生成word文檔
1,模版里做循環,需要循環的地方 在模版里加入 <#list reportListas a > </#list> 編輯好。
2,代碼里
Map<String,Object> resMap = new HashMap<>();
resMap.put("reportList", list);
t.process(resMap,out);
⑹ 怎麼做一個word模板,用java調用列印功能
1、首先新建一個空白文檔,並另存為「Normal.dotm(Word2007及以後版本)Normal.dot(Word2003-2007版本)」。
2、進行需要的模板設置,對字體、段落、頁眉頁腳,頁面邊距等進行設置。
3、對字體、段落的設置:在空白的新文檔中,右擊進行對字體的設置,在設置完成後,點擊「默認」按鈕。
4、對頁眉頁腳,頁面邊距:同樣在菜單欄,選擇插入"頁眉頁腳"進行設置,設置後點擊「默認」按鈕,並同時設置「頁面邊距」並點擊「默認」按鈕。
5、在全面進行模板設置後,需要保存,在操作中會出現對一些「默認的設置」如果所示,要選擇「是」,「你准備將默認的字體更改為.....,是否將此更改應用於所有基於NORMAL模板的新文檔?」
6、把剛才保存的模板,復制起來,在打開「C:\Users\Administrator\AppData\Roaming\Microsoft\Templates」替換原有的Normal.dotm或Normal.dot,關閉。
7、測試效果:打開一個Word文檔,並按下「CTRL+N」新建一個空白文檔,任意輸入內容,可以看到是剛才設置的模板。
java實現調用默認列印機列印文檔(以D盤.txt文檔為例),代碼如下:
import java.io.File;
import java.io.FileInputStream;
import java.io.FileNotFoundException;
import javax.print.Doc;
import javax.print.DocFlavor;
import javax.print.DocPrintJob;
import javax.print.PrintException;
import javax.print.PrintService;
import javax.print.PrintServiceLookup;
import javax.print.ServiceUI;
import javax.print.SimpleDoc;
import javax.print.attribute.DocAttributeSet;
import javax.print.attribute.HashDocAttributeSet;
import javax.print.attribute.HashPrintRequestAttributeSet;
import javax.print.attribute.PrintRequestAttributeSet;
/**
* 調用列印機功能
* @author Administrator
**/
public class PrintDemoII {
public static void main(String[] args) {
DocFlavor flavor = DocFlavor.INPUT_STREAM.AUTOSENSE;
PrintRequestAttributeSet aset = new HashPrintRequestAttributeSet();
PrintService []pservices = PrintServiceLookup.lookupPrintServices(flavor, aset);
PrintService defaultService = PrintServiceLookup.lookupDefaultPrintService();
PrintService service = ServiceUI.printDialog(null, 200, 200, pservices,
defaultService, flavor, aset);
if(service != null){
try {
DocPrintJob pj =service.createPrintJob();
FileInputStream fis = new FileInputStream("D:"+ File.separator +".txt");//列印D盤.txt文檔。
DocAttributeSet das = new HashDocAttributeSet();
Doc doc = new SimpleDoc(fis, flavor, das);
pj.print(doc, aset);
} catch (FileNotFoundException fe) {
fe.printStackTrace();
} catch (PrintException e) {
e.printStackTrace();
}
}else {
System.out.println("列印失敗");
}
}
}
⑺ java動態生成word,該怎麼解決
首先,通過xml模板可以將基本上所有的格式都事先鎖定,包括頁碼和分頁,只要你事先預設好就能夠通過freemarker實現生成,
接下來就是我這個問題了,目錄怎麼解決,下面是解決思路:
1:目錄的內容可以根據之前其他的內容一樣解決,通過xml模板預先設置好,
2:目錄的頁碼已經研究過是不能直接通過xml模板實現動態對應了(至少我沒搞定0.0)
3:由於不能夠一步到位,我採取了在模板中預留了一頁空白頁,只留了抬頭的目錄兩個字,然後通過查詢目錄二字進行目錄的生成,
這個功能也是我剛剛折騰出來的0.0目前還沒測試能不能用模板生成目錄後再更新目錄0.0,不過想想可以直接生成目錄應該就不用這么麻煩了,至於word生成後的修改0.0我覺得還是以後再說吧.....
整體來說應該還算完美解決了,代碼我就不在這貼出來了~
雖然中間折騰了半天走了半天彎路~
講道理還是用的jacob來實現的。。
⑻ java怎麼導入word模板
這個我好久之前弄的了,沒有代碼了,只能給你思路。
你這個為什麼是word模板呢,如果是word格式的話我不知道通過什麼方法來定位你輸入值的具體位置,但是如果格式是excel的話就好弄多了啊,因為excel的每個位置都市有具體的坐標的,然後可以通過坐標來獲取值,網上有很多讀取excel的代碼可以參考的。
⑼ java web用戶按照提供的變數規則創建一個word模板上傳到系統後,系統按照上傳的模板導出數據,如何實現
感覺你這要求跟實現一個JasperReports乾的事情差不多, JasperReports專門做格式文檔列印,可以生成word、pdf,但是是用.jrxml定義的模板,可以嵌入MVC框架中。自己做文檔解析工作量比較大、詞法分析(掃描)、語法分析(包括自頂向下和自底向上的分析)、語義分析實現都比較麻煩。
⑽ java寫入word表格模板(歡迎高手過來探討)
使用office 2007的格式,即docx,這個是一個zip包的形式的xml文件集和,你可以直接讀寫xml文件然後重新打成zip包改名為docx就可以了。具體文件格式可以參考微軟msdn 。或者使用Apache POI