本文目录一览:
- 1、java jsp中如何实现下载.csv文件、并自动保存到指定的文件夹下
- 2、JSP页面将查询结果导出为CSV文件
- 3、怎么实现在jsp页面读取csv文件的内容
- 4、前台jsp获取查询到的数据库数据,导出为csv文件(几十万行)如何让处理?
- 5、关于用jsp编写,导出数据库中文件为".csv"文件问题
java jsp中如何实现下载.csv文件、并自动保存到指定的文件夹下
你这种想法不太现实
首先你客户端要跟服务器交互是要客户端主动发送请求
然后建立连接去操作
就算你不手动选保存路径,那你还是要写代码去实现这个过程的
实现方式就两种了
bs跟cs架构均可
思路是一样的
BS:
servlet读取本地文件,然后以流的形式输出就行,注意要设置输出的MINE类型也就是contentType
你客户端写个程序通过http访问这个servlet,然后通过程序去保存到你移动硬盘
如果是cs架构的话,你的服务端监听socket
如果有客户端连接那就等待接收命令或者是直接往客户端传文件的二进制流
客户端:已启动就连接服务端,发送文件请求,处理回传的文件字节流
JSP页面将查询结果导出为CSV文件
你好运气啊~~我前几天刚做过这个~~~
下面这大段代码是2个方法 除了在第一个方法里将文件名和要写入的表头改成你自己的之外其余照搬就可以了 最后只需用在你的主方法里调用这两个方法就行了
不易理解的地方我做了注释 祝你成功~~~
public File putOutTaskToExcelFile(ListE getPutOutTaskResult) {
//在我的代码里,getPutOutTaskResult是我需要导出的信息列表,你换成你的就行
BufferedWriter out = null;
int random = (int) (Math.random() * 1000 + 1);
//这个随机数只是为了让后面生成的文件名不重复而已
File excelFile = null;
try {
excelFile = File.createTempFile("你的文件名" + random,".csv");
//生成一个csv临时文件
excelFile.deleteOnExit();
} catch (IOException e1) {
e1.printStackTrace();
}
int i = 1;
try {
out = new BufferedWriter(new FileWriter(excelFile));
out
.write("序号" + "," + "用户号码" + "," + "是否成功" + "," + "失败原因"
+ ",");//换成你需要的表头
out.newLine();
IteratorE resultIterator = getPutOutTaskResult.iterator();
while (resultIterator.hasNext()) {
E e = resultIterator.next();
out.write(i + "," + A + ","
+ B + "," + C);
//A、B、C等等都换上你自己的就可以 i是一个自增序号
out.newLine();
i++;
}
out.flush();
} catch (IOException e) {
e.printStackTrace();
} finally {
if (out != null) {
try {
out.close();
} catch (IOException e) {
e.printStackTrace();
}
}
}
return excelFile;
}
/**
* 将服务器端生成的Excel文件提供给客户端下载
*
* @param request
* @param response
* @param tempFile
*/
private void download(HttpServletRequest request,
HttpServletResponse response, File tempFile) {
String filenamedownload = tempFile.toString();
String filenamedisplay = tempFile.getName();
try {
filenamedisplay = URLEncoder.encode(filenamedisplay, "UTF-8");
} catch (UnsupportedEncodingException e1) {
e1.printStackTrace();
}
response.addHeader("Content-Disposition", "attachment;filename="
+ filenamedisplay);
OutputStream output = null;
FileInputStream fis = null;
try {
output = response.getOutputStream();
fis = new FileInputStream(filenamedownload);
byte[] b = new byte[1024];
int i = 0;
while ((i = fis.read(b)) 0) {
output.write(b, 0, i);
}
output.flush();
} catch (Exception e) {
e.printStackTrace();
} finally {
if (fis != null) {
try {
fis.close();
} catch (IOException e) {
e.printStackTrace();
}
fis = null;
}
if (output != null) {
try {
output.close();
} catch (IOException e) {
e.printStackTrace();
}
output = null;
}
}
}
怎么实现在jsp页面读取csv文件的内容
前台可以通过JS过滤文件类型,如果是CSV,允许上传,如果不是,给出提示。 后台先上传文件,如果成功,记录成功数量,失败记录失败数量。(这里记住要先上传在解析, 外在因素可能导致多种失败的情况。) 具体信息可以让他下载后查看。
前台jsp获取查询到的数据库数据,导出为csv文件(几十万行)如何让处理?
一次性长时间占用链接很容易超时的,
所以我一般采用ajax一页50条数据,分页处理,处理完的数据给个标识,
文件的写入使用补充的形式不用覆盖的方式如
FileWriter a=new FileWriter("d:/abc.csv"); 改成 FileWriter a=new
FileWriter("d:/abc.csv",true);这样就不会覆盖原来写入的内容。
先在服务器上生成csv文件再提供给用户下载。
关于用jsp编写,导出数据库中文件为".csv"文件问题
设置下response就可以了吧。
response.setContentType("application/csv");
response.setHeader("Content-Disposition", "inline; filename="result.csv"");
关于文件下载你应该做过吧。只要设置了response的输出类型 下载都是同样的道理
下面的例子是没有下载功能的。
String queryResult = ...;
response.setContentType("application/csv");
response.setHeader("Content-Disposition", "inline; filename="result.csv"");
PrintWriter out = new PrintWriter(new OutputStreamWriter(
response.getOutputStream(), "UTF-8"));
out.print(queryResult);
out.close();
----------------------------
那就比较郁闷了~下载可以有多种实现方式的。建议你去找下符合你当前项目的下载示例看看。
只要你能下载了 那导出任何格式的文件都非常简单的。