社区
Java EE
帖子详情
服务器端生成excel文件 在客户端保存(POI)
jkgao801
2007-05-16 10:58:07
在我的程序中,在客户端(jsp页面)输入数据,然后将数据传入serlvet,servlet中调用javaben 中的一个方法,此方法中用POI 来把 客户端传送来的数据保存到一个excel 中里面. 问题是:
1.直接在bean 里面用FileOutputStream 可以生成一个excel文件到服务器的指定路径下.
但是 ,如何在客户端通过选择保存路径,把excle文件保存到客户端.
...全文
1091
4
打赏
收藏
服务器端生成excel文件 在客户端保存(POI)
在我的程序中,在客户端(jsp页面)输入数据,然后将数据传入serlvet,servlet中调用javaben 中的一个方法,此方法中用POI 来把 客户端传送来的数据保存到一个excel 中里面. 问题是: 1.直接在bean 里面用FileOutputStream 可以生成一个excel文件到服务器的指定路径下. 但是 ,如何在客户端通过选择保存路径,把excle文件保存到客户端.
复制链接
扫一扫
分享
转发到动态
举报
AI
作业
写回复
配置赞助广告
用AI写文章
4 条
回复
切换为时间正序
请发表友善的回复…
发表回复
打赏红包
yksky
2007-05-17
打赏
举报
回复
呵呵,这个问题,可以利用流来实现,当用户输入数据之后,就把这些数据写入流里面去,之后,再跳到一个servlet里面,设置打开方式为excel,这样,就不用在服务器上先生成一个excel文件,再在jsp页面上去调用这个生成的excel文件,达到动态生成excel文件的目的
1:POI处理类
public class ExportExcel {
//数据源
private Vector vector ;
public ExportExcel(Vector vector){
this.vector = vector ;
}
/**
* 对Vector数据源将其里面的数据导入到excel表单
* @param fieldName[] 导出到excel文件里的表头名
* @param sheetName 工作表的名称
* @param output java输出流
*/
public void getExcel(String[] fieldName,String sheetName,OutputStream output){
//产生工作薄对象
HSSFWorkbook workbook = new HSSFWorkbook();
//产生工作表对象
HSSFSheet sheet = workbook.createSheet();
//为了工作表能支持中文,设置字符集为UTF_16
workbook.setSheetName(0, sheetName, HSSFWorkbook.ENCODING_UTF_16);
//产生一行
HSSFRow row = sheet.createRow(0);
//产生单元格
HSSFCell cell ;
//写入各个字段的名称
for(int i=0;i<fieldName.length;i++){
//创建第一行各个字段名称的单元格
cell = row.createCell((short)i);
//设置单元格内容为字符串型
cell.setCellType(HSSFCell.CELL_TYPE_STRING);
//为了能在单元格中输入中文,设置字符集为UTF_16
cell.setEncoding(HSSFCell.ENCODING_UTF_16);
//给单元格内容赋值
cell.setCellValue(fieldName[i]);
}
System.out.println("vector.size()="+vector.size());
//写入各条记录,每条记录对应excel表中的一行
for(int i=0;i<vector.size();i++){
row = sheet.createRow(i+1);
Vector v = (Vector)vector.get(i);
for(int j=0;j<v.size();j++){
cell = row.createCell((short)j);
cell.setCellType(HSSFCell.CELL_TYPE_STRING);
cell.setEncoding(HSSFCell.ENCODING_UTF_16);
cell.setCellValue(v.get(j).toString());
}
}
try {
output.flush();
workbook.write(output);
} catch (IOException e) {
e.printStackTrace();
System.out.println("Output is closed");
}
}
2:servlet类
public class AcdtExcelServlet extends HttpServlet{
public void doGet (HttpServletRequestrequest,HttpServletResponseresponse)
throws IOException{
response.setContentType("application/vnd.ms-excel");
AcdtExcel db = new AcdtExcel();
Vector vector = db.getAcdtExcel();
String[] fieldName = {"系统编号","发生纬度","年平均日交通量"};
String sheetName = "所有事故信息";
ExportExcel export = new ExportExcel(vector);
export.getExcel(fieldName, sheetName, response.getOutputStream());
response.getOutputStream().flush();
response.getOutputStream().close();
}
}
3:在web.xml中配置servlet
以上,我写的时候,是利用Vector来作为数据源的,不过你可以根据实际情况,比如说list,Object[][]等等,这些都应该不是问题.
kimmking
2007-05-17
打赏
举报
回复
response.setContentType("application/vnd.ms-excel");
OutputStream os = response.getOutputStream();
HSSFWorkbook wb = new HSSFWorkbook();
............
wb.write(os);
.............
tangboyong
2007-05-17
打赏
举报
回复
在我的程序中,在客户端(jsp页面)输入数据,然后将数据传入serlvet,servlet中调用javaben 中的一个方法,此方法中用POI 来把 客户端传送来的数据保存到一个excel 中里面. 问题是:
1.直接在bean 里面用FileOutputStream 可以生成一个excel文件到服务器的指定路径下.
但是 ,如何在客户端通过选择保存路径,把excle文件保存到客户端.
//
生成的 excel文件到服务器的指定路径下 ,那么假如我们把这个文件放到服务器根目录下的file下。例如 www/file/a.xls。那么用一个JSP的下载页专门下载这个文件不就行了吗。或者生成后马上调用下载页。 download.jsp?fileurl=file/a.xls
jkgao801
2007-05-17
打赏
举报
回复
yksky(北风) , 你好, 你的回复似乎可以解决我的问题, 但是我还是有点疑问, 能否 ,QQ上 交流一下, 谢谢了.. 398824651
生成
Excel
并在
客户端
下载的JSF实现
生成
Excel
并在
客户端
下载的JSF实现的源码与指导,非常实用!
java的
POI
操作
Excel
文件
.pdf
java的
POI
操作
Excel
文件
.pdf
jsp从服务器下载xls
文件
到
客户端
NULL 博文链接:https://yuanyuan7891.iteye.com/blog/723483
Android
poi
jar包,
生成
doc
文件
Android
poi
jar包,
生成
doc
文件
POI
实现的
excel
的上传下载
POI
实现的
excel
的上传下载
Java EE
67,549
社区成员
225,863
社区内容
发帖
与我相关
我的任务
Java EE
J2EE只是Java企业应用。我们需要一个跨J2SE/WEB/EJB的微容器,保护我们的业务核心组件(中间件),以延续它的生命力,而不是依赖J2SE/J2EE版本。
复制链接
扫一扫
分享
社区描述
J2EE只是Java企业应用。我们需要一个跨J2SE/WEB/EJB的微容器,保护我们的业务核心组件(中间件),以延续它的生命力,而不是依赖J2SE/J2EE版本。
社区管理员
加入社区
获取链接或二维码
近7日
近30日
至今
加载中
查看更多榜单
社区公告
暂无公告
试试用AI创作助手写篇文章吧
+ 用AI写文章