java 操作 excel ,要求从数据库中查询出来的数据 保存到excel文件中,并提示 另存为 路径可以任意选择

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了java 操作 excel ,要求从数据库中查询出来的数据 保存到excel文件中,并提示 另存为 路径可以任意选择相关的知识,希望对你有一定的参考价值。

如果是给自己做,你完全可以先存在txt、或csv里,用逗号分隔就可以了,转成excel的相当方便,不用再另学习新东西,我一直这么搞的
不好意思没看清,是让客户端直接下载数据库导出的excel啊,那就不会了,下载用servlet。追问

我里边要合并单元格、背景颜色等等都有

追答

txt,csv转execl还得手动转,明显不符合你的要求。。。
servlet下载我用过这个
import java.io.FileInputStream;
import java.io.IOException;
import java.io.OutputStream;

import java_files.Tools;

import javax.servlet.ServletException;
import javax.servlet.http.HttpServlet;
import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;

public class FileDownloadServlet extends HttpServlet
private static final long serialVersionUID = 1L;

protected void doPost(HttpServletRequest request,
HttpServletResponse response) throws ServletException, IOException
String fileName = 文件名;
response.setContentType("application/octet-stream");
response.setHeader("Content-disposition", "attachment;filename="
+ fileName);
FileInputStream fileInput=new FileInputStream(绝对路径);
OutputStream out = response.getOutputStream();
int i=-1;
byte[] buffer=new byte[1024];
while ((i=fileInput.read(buffer))!=-1)
out.write(buffer,0,i);

out.flush();
out.close();


protected void doGet(HttpServletRequest req, HttpServletResponse resp)
throws ServletException, IOException
doPost(req, resp);



希望有些帮助吧

追问

你这种方法我也会

我的项目用了Struts,我可以struts下载,我就是想知道 当点击时提示 打开、另存为、取消 框是怎么做的

追答

我不知道struts是怎样的,但servlet就可以实现你想要的效果,浏览器支持。
提示 打开、另存为、取消。。。

追问

如何做呢?????

追答

设定了文件名和路径后,想下载,只需要跳转到那个servlet就OK了,我当时是用Flex做的
代码的话。。。
private var serverSide:String = "FileDownloadServlet";
navigateToURL(new URLRequest(serverSide), "_blank");
很久之前的,也就想起来这么多,总之可以告诉你发送给servlet就可以实现你“另存为”的宏愿,原理我也不太明白,当时也是从网上查到的,拿来用感觉很好。自己再试试吧

追问

谢了,我自己解决了

参考技术A 百度 java解析 excel,常用的有po包 和jxl 包追问

我能将数据导出来,我是问怎么可以提示另存为?
我要做的是从服务器上下载

追答

提示另存为 需要用下载控件,写一个servlet 即可,例子可以百度个

java注意事项

for循环内进行I/O操作,包括数据库交互,接口调用,redis读取等等,如果可以,尽量转为批量操作

先查询出一个A集合, 然后遍历A集合的每一条数据查询组装A的其他信息 ,共查询1+N次数据库 ,这种问题要么一次查询出来,好么从集合A中获取信息ID ,再根据ID列表查询1次,最后内存中组装信息

代码是要不断优化的,你写的任何代码可能都不是性能最高的,只要当前环境能满足要求就行

循环中操作数据库,弄成批量

以上是关于java 操作 excel ,要求从数据库中查询出来的数据 保存到excel文件中,并提示 另存为 路径可以任意选择的主要内容,如果未能解决你的问题,请参考以下文章

Java JDBC 对要求仅从特定行返回详细信息的 SQL 查询抛出错误

java中怎么把数据写入excel

java导出excel 要有选择路径,保存信息是库查询出的数据

用java写个程序,把查询到的数据,出力成csv文件。 请提供可以运行的程序哦,或相似的代码,小弟谢谢咯。

从报表中导出查询以访问带有参数的 Excel

java 怎么从excel文件导入到oracle数据库中