java生成excel到指定路径不弹出选择路径的哪个对话框直接存到指定的路径??谢谢 谁会啊

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了java生成excel到指定路径不弹出选择路径的哪个对话框直接存到指定的路径??谢谢 谁会啊相关的知识,希望对你有一定的参考价值。

public ActionForward exportEntrypersonList(ActionMapping mapping, ActionForm form,
HttpServletRequest request, HttpServletResponse response) throws Exception
FileOutputStream os = null;
String fileName = "入职人员审批.xls";
response.setContentType("application/msexcel;charset=UTF-8");
response.setHeader("Content-Disposition", "attachment;filename="+java.net.URLEncoder.encode(fileName,"UTF-8"));
response.addHeader("Pargam", "no-cache");
response.addHeader("Cache-Control", "no-cache");
os = new FileOutputStream("D:/入职人员审批.xls");
this.createEntrypersonListExcel(os,request);
os.flush();
if(os!=null)
os.close();

return null;


private void createEntrypersonListExcel(OutputStream os,HttpServletRequest request) throws Exception

Map<String,Object> params=new HashMap<String, Object>();
String recruitType=request.getParameter("recruitType");
Date currentDate=new Date();
SimpleDateFormat sdfc=new SimpleDateFormat("yyyy-MM");
params.put("currentDateforExcel", sdfc.format(currentDate));

List<EmpcEntrypersonApprovalInfo> retiredList = new ArrayList<EmpcEntrypersonApprovalInfo>();
PaginationHelper pageInfo = new PaginationHelper(request);
pageInfo = service.queryEntrypersonApproval(params,pageInfo);
retiredList=pageInfo.getResultList();
HSSFWorkbook workBook = new HSSFWorkbook();
HSSFSheet sheet = workBook.createSheet("入职人员单表");
//设置表头style
样式省略了!!
String[] titleArr = new String[]"组织","姓名","身份证号","入职日期","毕业院校","学历","专业","状态","不符合用工条件";
//Header
HSSFRow row = sheet.createRow(0);
for (int i = 0; i < titleArr.length; i++)
HSSFCell headerCell = row.createCell(i);
headerCell.setCellStyle(headerCellStyle);
headerCell.setCellValue(titleArr[i]);

SimpleDateFormat sdf=new SimpleDateFormat("yyyy-mm-dd");
//Body
if(retiredList != null)
for (int j = 0; j < retiredList.size(); j++)
HSSFRow contentRow = sheet.createRow(j+1);
EmpcEntrypersonApprovalInfo info = retiredList.get(j);
String[] bodyArr = new String[]info.getBatchNum(),info.getEmpName(),info.getNationalIdentifier(),sdf.format(info.getJoinCucDate()),info.getUniversity(),info.getEducation(),info.getSpecialty(),info.getAppStatus(),info.getRemark();
for (int i = 0; i < bodyArr.length; i++)
HSSFCell cell = contentRow.createCell(i);
cell.setCellStyle(bodyCellStyle);
cell.setCellValue(bodyArr[i]);


for(int m=0;m< titleArr.length;m++)
sheet.autoSizeColumn(m,true);


workBook.write(os);

已经解决,谢谢各位!!!

参考技术A 下载文件,是否弹出由浏览器决定。。。。。。现在的BS结构中,想浏览器不弹出就能保存到指定的电脑路径,就是黑客了。。。。。。。要做到得写自己的客户端。追问

直接导出excel到指定目录这样可以吗?

追答

凡是通过浏览器,都不能———除非使用APPLET、并且权限非常大(系统非常不安全,现在的浏览器一般不允许的)

参考技术B 怎么解决的,可以说下吗?

javascript 导出文件 弹出选择路径窗口 返回路径和文件名

我要实现导出excel功能,就是点击一个按钮,可以选择路径和输入文件名,然后传到后台,根据路径和文件名新建一个文件,将导出的内容写入,怎么实现啊?

  出于安全原因, js不能访问客户端资源. 所以js写不了客户端文件. 使用file类i-n-p-u-t标签可以在浏览器上实现浏览客户端文件系统, 但是只能获取文件名, 路径对于js是不可见的. 所以你的方法是实现不了的.
  实现导出文件的通常做法是在后台生成好文件后, 将url重定向到已生成的文件或使用异步方法返回文件url在前台使用i-f-r-a-m-e打开, 这样就能直接下载. 之后根据客户端的设置, 是下载还是直接调用关联程序打开文档. 以xls文件为例, 客户端已安装office, 大多数浏览器是会直接代开该文件的, 可以在excel中另存到任意路径. 不过这些就不是js所能控制的了.

  后台代码实现方面, 直接在网站目录下生成文件当然方便, 但是存在安全方面的问题, 因为静态url无法控制访问权限. 最好是将文件生成在网站文件系统意外的独立区域存储, 将下载事务包装成动态页面, 读取文件使用b-i-n-a-r-y方式写入r-e-s-p-o-n-s-e(注意根据文件类型正确写入c-o-n-t-e-n-t Type, 这样浏览器才能正确识别为文件下载). 这样做的好处显而易见, 不管是安全方面还是其他逻辑都可自由扩展.

尼玛, 好多禁用的词汇, 回答js相关的问题各种河蟹
参考技术A 那如果要是直接是后台生成一个excel表格文件,也就是xls文件,然后点击下载或是导出时候,页面上弹出下载框,可以供用户选择下载地址以及修改名字可以吗? 参考技术B 你把逻辑顺序搞错了,不产生文件(或者虚拟文件),哪儿来的文件路径啊?

应该的过程是这样的: 进入需要excel生成的页面时,后台已经创建完成需要下载的excel文件并把资源的url路径写出到页面的链接中,直接点击链接下载文件;跟javascript没有关系。

另外:如果使用javascript做异步操作,更可以实现根据页面选择内容动态生成资源,再下载。

资源下载的时候,客户端是否支持选择路径和重命名资源,要看是什么操作系统、使用的浏览器版本,以及关联的下载工具,一般来说,IE默认支持选择路径(配置过默认路径,支持不需要选择直接下载),firefox、chrome会有默认路径(可更改),基本不会弹框,除非客户更改过设置。

使用关联浏览器下载的时候,一般来说都会支持选择路径以及重命名,迅雷就是一个例子。

so:你所述问题不是javascript能够操控的范围。
参考技术C <input type="file" name="file" onchange="alert(this.value)"><br><br>这样不行么?<br>放表单提交··不就到服务端了吗?<br><br>到了服务端不就可以存数据库了吗?<br><br>其他的我就不知道了··<br>=====================================<br>用普通方式上传,如果设置了form 的enctype="multipart/form-data"<br>属性的话,在服务器端是取不到路径的! 参考技术D 这个问题,我感觉很费解,在进行导出文件的时候,不是先应该下载么,下载的时候不是应该有让你选择路径么,为什么还要自定义一个选择路径的窗口呢?

以上是关于java生成excel到指定路径不弹出选择路径的哪个对话框直接存到指定的路径??谢谢 谁会啊的主要内容,如果未能解决你的问题,请参考以下文章

QT 如何让getSaveFileName 这个控件不弹出保存窗口直接指定路径保存

SpringMVC中导出Excel文件,关于弹出一个选择框,选择导出Excel文件的路径项目细节

JAVA怎么把导出的EXCEL放到只等的目录下

JavaScript如何弹出文件选择框,然后返回文件完整路径

javapoi数据导出成excel如何才能指定文件输出路径 现在是知道E盘路径 怎么弄成弹框选择路径

jsp调用java方法导出excel为啥会弹出保存或下载的对话框,调用完之后直接将文件保存到指定路径下即可。