「java模板生成」java模板生成word低版本打不开

博主:adminadmin 2022-12-30 18:24:08 1122

今天给各位分享java模板生成的知识,其中也会对java模板生成word低版本打不开进行解释,如果能碰巧解决你现在面临的问题,别忘了关注本站,现在开始吧!

本文目录一览:

JAVA,Spring boot怎么据数据库数据生成Excel模板?,含下拉框

只不过,jxl比较小,好用!对于下拉框联动的功能

jxl没有直接可以处理的!只能做好模板,然后用jxl往模板写数据!这样做,不完美,仅供参考02第一:excel中的联动处理

名称-定义 02设置一个区域,用来取值的区域,名称为 第一级别下拉框的选项名

第一级别 02 下拉框 数据 有效性 序列 值为 选项框 和 前面设置的区域名称相同

第二级别 02 下拉框 数据 有效性 序列 值为02=INDIRECT(B9) B9为第一级别的下拉框位置

第二:java程序的处理

A:对action进行判断 准备需要的值02filePath = CommAttachInfoFactory.rootPath

+ "/filedata/npForm/scaleTarget/模板录入模板/type-"+types[k]+".xls";

request.setAttribute("path", filePath);try{new OperationExcel().UpdateLuruExcel(filePath, temFileName,scaleTaskInfo);

} catch (Exception e) {

e.printStackTrace();}02B:具体的操作并生成文件02public void UpdateLuruExcel(String filename,String overDept,ScaleTargetForm scaleTaskInfo){try{Workbook wb = Workbook.getWorkbook(new File(filename));

WritableWorkbook workbook = Workbook.createWorkbook( new File(filename),wb);

WritableSheet sheet = workbook.getSheet(0);

sheet.addCell(new Label(0,1,scaleTaskInfo.getTask_name()+

"-"+scaleTaskInfo.getTask_start_time()));

workbook.write();

workbook.close(); }catch(Exception e){

e.printStackTrace();}}02附件为 一个做好的三级联动例子其中 选择区域的值 02可以做到另外一个sheet中,这样美观

java 如何根据模板生成word,并提供下载? 求高手帮助

给你一方式吧,目前应该在网上找不到方法。

如果只生成文字的话,很好些。你把当前的文字直接写入一个文件中,后缀名修改成.doc就可以了

第二种是,把word文档转换成.xml文件,当模块,你每次生成的东西,用流去操纵这个转换的xml文件。操作王城之后在把这xml文件转换成.doc文件。里面可以对表格,样式什么都可以控制。

用Java POI到实现一个Excel模板生成。但是遇到一个比较奇特的问题。

我这边使用的时候是前台先遍历标题,再遍历内容,再传到后台,在后台手工拼的标题(如果是多行标题),再遍历。不知道你说的下拉列表功能是直接用的插件还是什么。

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]

/prep/pp/ppre 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模板生成和java模板生成word低版本打不开的介绍到此就结束了,不知道你从中找到你需要的信息了吗 ?如果你还想了解更多这方面的信息,记得收藏关注本站。