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