CSV其实就是COMMA SEPARATED VALUE的缩写。
在开发中用Java操作csv文件有专门的的API叫javacsv.jar
javacsv.jar下载地址:
http://sourceforge.net/project/showfiles.php?group_id=33066
down.jsp
<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=ISO-8859-1">
<title>Insert title here</title>
</head>
<body>
<input type="button" value="点击即可下载" onclick="work();" />
<hr />
浏览文件:
<input type="file" name="path" id="path">
</body>
<SCRIPT LANGUAGE="JavaScript">
var uname = "<sec:authentication property='name'></sec:authentication>";
function work() {
//important!
window.location = "user/reqDownload?account=" + uname;
}
</SCRIPT>
</html>
UserController类:
@RequestMapping(value = "/reqDownload", method = RequestMethod.GET)
public void reqDownload(@RequestParam("account") String user_account,
HttpServletResponse response, HttpServletRequest request,
ModelMap map) throws IOException {
request.setCharacterEncoding("UTF-8");
// get the filePath that will be downnLoad
String path = CSVReportOneService.ReqCSVFile(user_account,
"reqFileName");
// 获取下载文件路径
// String path=request.getParameter("reqFileName");
// 编码
// path=URLEncoder.encode(path, "ISO-8859-1");
// 解码
// path=URLDecoder.decode(path, "UTF-8");
File file = new File(path);
// 文件名
String fileName = file.getName();
// 扩展名
// String ext = fileName.substring(fileName.lastIndexOf(".") + 1,
// fileName.length()).toUpperCase();
// 输入流
InputStream inStream = new FileInputStream(path);
InputStream in = new BufferedInputStream(inStream);
byte[] bs = new byte[in.available()];
in.read(bs);
in.close();
// 清空response
response.reset();
// 设置response的Header
// 使浏览器弹出下载对话框
response.addHeader("Content-Disposition", "attachment;filename="
+ new String(fileName.getBytes(), "ISO-8859-1"));
response.addHeader("Content-Length", "" + file.length());
// 输出流
OutputStream toClient = new BufferedOutputStream(
response.getOutputStream());
response.setContentType("application/octet-stream");
toClient.write(bs);
toClient.flush();
toClient.close();
// map.addAttribute("xml", path);
}
CSVReportOneServiceImpl类方法
import java.text.SimpleDateFormat;
import java.util.Date;
import java.util.List;
import com.rg.report.entity.CSVTest;
import com.rg.report.service.CSVReportOneService;
import com.rg.report.utils.CSV.Java2CSV;
public class CSVReportOneServiceImpl extends BaseServiceImpl<CSVTest> implements
CSVReportOneService {
@Override
public String ReqCSVFile(String user_account, String CSVName) {
// 从获取将要写入csv文件的结果集
String sql = "SELECT user_id,user_account ,user_name,user_desc FROM rg_users";
List<CSVTest> list = findByNativeQuery(sql.toString(), CSVTest.class,
null);
// 预组装csv文件内容标题行
String[][] data = new String[list.size() + 1][4];
data[0][0] = "user_id";
data[0][1] = "user_account";
data[0][2] = "user_name";
data[0][3] = "user_desc";
// 预组装csv文件内容
int len = list.size();
for (int i = 0; i < len; i++) {
data[i + 1][0] = list.get(i).getUser_id();
data[i + 1][1] = list.get(i).getUser_account();
data[i + 1][2] = list.get(i).getUser_name();
data[i + 1][3] = list.get(i).getUser_desc();
}
Date date1 = new Date();
SimpleDateFormat dateFm = new SimpleDateFormat("yyyy-MM-dd-HHmmss");
// file store path
String fileName = "e://Log/" + dateFm.format(date1) + "-"
+ user_account + CSVName + "-" + "月流量报表1--测试.csv";
//write CSV.file on localhost
Java2CSV.writerCsv(fileName, data);
return fileName;
}
}
CSVTest.java
import javax.persistence.Entity;
import javax.persistence.Id;
@Entity
public class CSVTest {
@Id
String user_id;
String user_account;
String user_name;
String user_desc;
public String getUser_id() {
return user_id;
}
public void setUser_id(String user_id) {
this.user_id = user_id;
}
public String getUser_account() {
return user_account;
}
public void setUser_account(String user_account) {
this.user_account = user_account;
}
public String getUser_name() {
return user_name;
}
public void setUser_name(String user_name) {
this.user_name = user_name;
}
public String getUser_desc() {
return user_desc;
}
public void setUser_desc(String user_desc) {
this.user_desc = user_desc;
}
}
分享到:
相关推荐
这是描述JavaEE服务器高端编程的pdf文件 欢迎大家下载!
SSO实例服务器端,内含客户端所需包文件、以及文档资料
Web组件 J2EE的Web组件...服务器端应用类也可以与Web组件捆绑,象HTML一样,没有作为Web组件。 如图3展示,向客户层一样,Web层有JavaBeans对象管理用户的输入,并把输入发送到运行在业务层的企业Bean处理。
JSF是基于Java的Web应用开发领域里提供了一个可重用、可扩展、基于组件、工具友好的服务器端UI框架。在支持JSF的RAD开发工具中,人们可以像使用Visual Studio.NET一样方便快捷地构建Web用户界面,大大降低了利用Java...
服务器端产品 B. 服务器端组件开发架构 C. 特殊类型的JavaBean D. 用于实现商业逻辑 2. EJB架构主要使用的设计模式是: [AC] A. Proxy 代理 B. Strategy C. Delegate 委派 D. Responsibility Chain 3. EJB的类型...
J2EE系统技术方案 J2EE系统技术方案 1 一、 技术平台 2 1. J2EE的概念 3 2. J2EE的优势 3 3. J2EE相关核心技术 4 4. 轻量级J2EE架构 5 二... 可伸缩性: 企业必须要选择一种服务器端平台,这种平台应能提供极佳的可伸缩
由于B/S架构管理软件只安装在服务器端(Server)上,即应用程序在部署、升级、维护时,只需要在服务器端进行配置就可以了,网络管理人员只需要管理服务器就行了,用户界面主要事务逻辑在服务器(Server)端完全通过...
JSP( Java Sserver Page )是基于Java语言的服务器端页面 JSP本质就是一个文档,他不仅可以包含静态的HTML代码,也可以包含动态的JAVA代码,服务器容器可以将JSP转换成Servlet发布,并接受请求 JSP文件只需放在...
1.服务器端配置 (1)将\XiangQiServer文件夹拷贝到Eclipse的工作空间中。 (2)启动Eclipse。 (3)选择“文件”/“导入”菜单项,展开“常规”节点,选择“现有项目到工作空间中”子节点。 特点有: 界面设计简洁...
J2EE系统技术方案 J2EE系统技术方案 1 一、 技术平台 2 1. J2EE的概念 3 2. J2EE的优势 3 3. J2EE相关核心技术 4 4. 轻量级J2EE架构 5 二... 可伸缩性: 企业必须要选择一种服务器端平台,这种平台应能提供极佳的可伸缩
该系统采用了当下流行的前后端分离架构,通过Ajax技术实现了前端页面与后端服务器之间的异步数据交互,大大提升了用户的操作体验。作为一款适用于毕业设计或课程设计的项目,MicroERP-0.1版本提供了完整的JSP和Java...
原文:《使用easy eclipse,flex ...l 在 j2ee 视图中 release 产生的 war 文件中包含了最终的服务器代码和 flex 应用编译后的 swf 文件 , 可以直接部署 . 压缩包里是详细步骤、以及最终生成的eclipse 模板项目信息
由于B/S架构管理软件只安装在服务器端(Server)上,即应用程序在部署、升级、维护时,只需要在服务器端进行配置就可以了,网络管理人员只需要管理服务器就行了,用户界面主要事务逻辑在服务器(Server)端完全通过...
JClass ServerReport是一个100%纯Java 服务器端组件库,能在您的J2EE基于服务器的Java应用程序中动态的生成定制的Adobe Acrobat PDF 文档,为您的用户提供专业的,高质量,可随处打印的定制报表。JClass Server...
综上:Apache是纯粹的web服务器,而Tomcat和IIS因为具有了解释执行服务器端代码的能力,可以称作为轻量级使用服务器或带有服务器功能的Web服务器。 Weblogic、WebSphere因为能提供强大的J2EE功能,毫无疑问是绝对的...
本次我们的B2C电子商务系统设计过程中主要用到的技术为分别为JSP、Servlet...JSP 组合了服务器端脚本和标记,同时允许将显示逻辑(如HTML) 与业务逻辑区分开来。在每一个JSP 文件中,可以包括JSP 语法、HTML 标记、Servlet
Servlet(Server Applet)是Java Servlet的简称,称为小服务程序或服务连接器,用Java编写的服务器端程序,主要功能在于交互式地浏览和修改数据,生成动态Web内容。(错误总结图404、500、405三个)
目前resin可以支持sun的j2ee,而tomcat不能直接支持,而j2ee是基于java服务器端大系统的基础。但tomcat结构非常合理,而且是apache组织的产品,因此有着很好的远景。 Resin1.1的特性包括: 1 支持jsp1.1和在服务器...
● jxcell是可以在服务器或客户端操作Excel文件的Java工具,可以用作快速的服务器端计算引擎,执行复杂的快速计算。 ● 可以在 Java 用户界面中嵌入jxcell电子表格,应用于可嵌入小程序(java applet)和 Java 桌面...
无疑会添加服务器的处理能力,在服务器端并发性一定的情况下,由于请求的用户 过多,而服务器又一时处理不过来,所请求的用户必然会经历一个排队的过程,从而使 得系统的整体响应时候大幅度添加,这样的用户体验也就...