/**
*js层
*/
downLoad = function(){
var params = {
"value" : $("#id").val()
};
window.open("/down/downLoad?value="+$("#id").val());//不可以使用ajax请求,因为流无法传输到前端,需要另打开界面。路径+传输到controller的值
};
/**
*controller层
*/
@RequestMapping(value = "/downLoad", method=RequestMethod.POST,produces="text/html;charset=UTF-8" )
public ModelAndView downLoad(int value) throws Exception {
List<String> downList = new ArrayList<String>();
List<String> headList = new ArrayList<String>();
HttpServletResponse response = getResponse();
response.reset();
response.setCharacterEncoding("UTF-8");
response.setContentType("application/octet-stream");
//String downloadFileName =new String("下载".getBytes("utf-8"),"iso-8859-1");//一般是utf-8但是ie下载时,文件名会乱码
String downloadFileName =new String("下载".getBytes("gb2312"),"iso-8859-1");//IE11下文件名不会乱码
// downloadFileName += new String(bi.getBatchName().getBytes("utf-8"),"iso-8859-1")+"-";
downloadFileName += new String(bi.getBatchName().getBytes("gb2312"),"iso-8859-1")+"-";
downloadFileName += new SimpleDateFormat("yyyyMMddHHmmss").format(new Date());//在文件名中加入下载的年月日时分秒
response.setHeader("Content-Disposition", "attachment; filename=\""+ downloadFileName + ".csv\"");
ServletOutputStream sos = response.getOutputStream();
boolean isSuccess=CsvUtils.exportCsv(sos ,headList,downList);
return null;//不需要返回前端任何内容
}
/**
*exportCsv方法
*/
public static boolean exportCsv(ServletOutputStream outputStream,List<String> headList, List<String> dataList){
boolean isSucess=false;
try {
StringBuilder sb = new StringBuilder();
if(headList!=null && !headList.isEmpty()){
for(String data : headList){
sb.append(data);
sb.append("\r");//在这里需要将数据一行一行展示
}
}
if(dataList!=null && !dataList.isEmpty()){
for(String data : dataList){
sb.append(data);
sb.append("\r");
}
}
outputStream.write(sb.toString().getBytes("GBK"));//写入输出流
outputStream.flush();//缓存流
isSucess=true;
} catch (Exception e) {
e.printStackTrace();
isSucess=false;
}finally{
if(outputStream!=null){
try {
outputStream.close();//一定要将流关闭,否则日志中会出错
outputStream=null;
} catch (IOException e) {
e.printStackTrace();
}
}
}
return isSucess;
}
相关推荐
这部分包括解析请求参数、查询数据库、构建导出文件(如CSV、Excel或PDF)等步骤。由于这些操作可能会花费较长时间,所以这里需要实现异步处理。 4. **多线程与异步处理**:为避免阻塞主线程,可以使用Java的...
本篇将详细探讨如何使用JavaScript(js)来实现Excel文件的导出,以及与Java的交互。 标题中的"excel导出的js"指的就是使用JavaScript库或方法来生成Excel文件。JavaScript是一种运行在客户端和服务器端的脚本语言...
- **导出数据**:EasyUI可以结合后台服务,将表格数据导出为Excel或CSV格式,方便用户保存和分析。 2. **SSH框架**: - **Struts2**:是MVC框架的一部分,主要负责接收HTTP请求,调用业务逻辑,然后将结果返回给...
- 使用Spring MVC的Controller接收导入导出请求,处理文件上传和下载。 - 数据的导入通常会用到文件流操作,如BufferedReader读取CSV或Excel文件,然后解析数据,通过Service层调用DAO进行数据存入数据库。 - 导出则...
4. 文件处理:系统可能需要读写CSV或Excel文件,Java的Apache POI库可以方便地处理这类任务。 5. 安全性:为了保护用户数据,系统应采用HTTPS协议,以及Spring Security等工具进行身份验证和授权。 三、主要功能 ...
本文将详细探讨如何在基于MVC(Model-View-Controller)架构的系统中处理PDF表格,包括数据的提取、合并以及与CSV(Comma-Separated Values)文件的交互,同时关注PDF文件的上传下载功能。 首先,PDF表格的填写和...
Struts是一种基于MVC(Model-View-Controller)设计模式的框架,它简化了构建企业级Java应用的过程,提供了请求处理、视图展示以及业务逻辑控制的功能。而iReport是一款开源的报表设计工具,它是JasperReports库的一...
- **数据导出**:支持将成绩数据导出为Excel或CSV格式,方便线下查看和分析。 4. **前端开发**: - **HTML/CSS/JavaScript**:前端界面通常由HTML结构、CSS样式和JavaScript交互组成,创建友好的用户界面。 - **...
8. **文件操作**:可能涉及读写CSV或XML文件,用于导入导出数据。 9. **日志记录**:如使用Log4j或Java内置的日志框架,记录系统运行时的信息,便于调试和问题定位。 10. **版本控制**:通过Git,开发者可以协同...
4. **客户端处理**:当用户点击导出按钮,前端JavaScript(可能是grid2excel函数)会触发这个请求,接收到响应后,浏览器会自动下载文件。 这个项目的实际实现可能还会涉及到错误处理、权限验证、数据筛选等额外...
在本文中,我们将探讨如何使用Ajax技术在ASP.NET MVC环境中生成并下载Excel文件。这个方法对于需要在不刷新页面...这种方法可以应用于其他需要动态生成和下载文件的场景,不仅仅是Excel,还可以扩展到PDF、CSV等格式。
1. **JSF(JavaScript Server Faces)**:JSF是一种MVC(Model-View-Controller)架构的Java Web组件模型。它提供了丰富的UI组件库,如输入字段、按钮、表格等,使得开发者可以更方便地创建用户界面。JSF通过处理...
在SpringBoot项目中,你可以创建一个Controller处理文件下载请求。例如: ```java @GetMapping("/download") public ResponseEntity<InputStreamResource> downloadFile() { // 获取文件输入流 ...
7. **文件管理**:虽然文件名只给出了"manage",但通常在学生管理系统中,可能会有CSV或Excel文件用于导入导出学生数据,或者配置文件存储数据库连接信息等。 8. **测试**:为了保证系统的稳定性和准确性,开发者...
7. **文件导入导出**:可能涉及到CSV或Excel格式的数据导入导出,这需要用到如Apache POI这样的库来处理文件内容,将数据读入内存或写入文件。 8. **异常处理**:良好的异常处理能提高系统的健壮性。在处理用户输入...
在实际应用中,开发者可能需要处理文件的读写操作,如导出通讯录数据到CSV或XML文件,或者导入外部数据源。 8. **安全考虑**:任何Web应用程序都需要考虑安全性,包括输入验证以防止SQL注入,使用HTTPS协议保护数据...
2. **上传下载CSV文件**:此功能允许用户导入或导出数据到CSV格式,这是数据交换的标准格式之一。CSV文件的导入可以快速将结构化数据转化为图谱中的节点和关系,方便进行分析和处理。 3. **节点的CRUD**:CRUD代表...
- 数据导出:支持将财务数据导出为Excel或CSV格式文件。 #### 四、开发流程 1. **需求分析**:明确系统的目标用户、主要功能及非功能性需求。 2. **设计阶段**: - 架构设计:确定整体架构和技术选型。 - UI/UX...
最后,"indeEXT.jsp"是系统的入口点,这表明系统基于经典的MVC(Model-View-Controller)架构,JSP(JavaServer Pages)在这里作为视图层,用于呈现数据和交互逻辑。用户通过浏览器访问这个页面,系统会根据用户操作...
6. **数据导入导出**:在业务场景中,用户可能需要导入或导出数据,例如CSV或Excel文件。在SSM+EasyUI案例中,可以通过文件上传功能接收用户上传的文件,然后利用Java处理这些文件并将其导入到数据库。反之,导出...