社区
Java EE
帖子详情
服务器端生成excel文件 在客户端保存(POI)
jkgao801
2007-05-16 10:58:07
在我的程序中,在客户端(jsp页面)输入数据,然后将数据传入serlvet,servlet中调用javaben 中的一个方法,此方法中用POI 来把 客户端传送来的数据保存到一个excel 中里面. 问题是:
1.直接在bean 里面用FileOutputStream 可以生成一个excel文件到服务器的指定路径下.
但是 ,如何在客户端通过选择保存路径,把excle文件保存到客户端.
...全文
1070
4
打赏
收藏
服务器端生成excel文件 在客户端保存(POI)
在我的程序中,在客户端(jsp页面)输入数据,然后将数据传入serlvet,servlet中调用javaben 中的一个方法,此方法中用POI 来把 客户端传送来的数据保存到一个excel 中里面. 问题是: 1.直接在bean 里面用FileOutputStream 可以生成一个excel文件到服务器的指定路径下. 但是 ,如何在客户端通过选择保存路径,把excle文件保存到客户端.
复制链接
扫一扫
分享
转发到动态
举报
写回复
配置赞助广告
用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
SOAOFFICE - 微软 OFFICE 中间件
21.需要在Ajax架构里调用Word/
Excel
的,包括
服务器端
和
客户端
Javascript都适用。 22.需要控制不同的用户在Word/
Excel
中不同的区域中编辑权限的; 23.需要在企业局域网内架设在线Office文档中心、知识管理的; 24....
soaoffice示例代码
需要在Ajax架构里调用Word/
Excel
的,包括
服务器端
和
客户端
Javascript都适用。 22.需要控制不同的用户在Word/
Excel
中不同的区域中编辑权限的; 23.需要在企业局域网内架设在线Office文档中心、知识管理的;
POI
操作
Excel
导入和导出
在企业级应用开发中,
Excel
报表是一种最常见的报表需求,
POI
是apache的子项目,目标是处理ole2对象。它提供了一组操纵Windows文档的Java API目前比较成熟的是HSSF接口,处理MS
Excel
(97-2002)对象。它不象我们...
Java范例开发大全 (源程序)
实例134
生成
Excel
文件
194 实例135 读取
Excel
文件
中的内容 198 实例136
生成
PDF
文件
199 实例137 读取PDF
文件
中的内容 203 实例138 用iText
生成
Word
文件
205 实例139 利用
POI
读取Word
文件
中的内容...
java范例开发大全(pdf&源码)
实例134
生成
Excel
文件
194 实例135 读取
Excel
文件
中的内容 198 实例136
生成
PDF
文件
199 实例137 读取PDF
文件
中的内容 203 实例138 用iText
生成
Word
文件
205 实例139 利用
POI
读取Word
文件
中的内容 208 7.3 字符流 ...
Java EE
67,517
社区成员
225,877
社区内容
发帖
与我相关
我的任务
Java EE
J2EE只是Java企业应用。我们需要一个跨J2SE/WEB/EJB的微容器,保护我们的业务核心组件(中间件),以延续它的生命力,而不是依赖J2SE/J2EE版本。
复制链接
扫一扫
分享
社区描述
J2EE只是Java企业应用。我们需要一个跨J2SE/WEB/EJB的微容器,保护我们的业务核心组件(中间件),以延续它的生命力,而不是依赖J2SE/J2EE版本。
社区管理员
加入社区
获取链接或二维码
近7日
近30日
至今
加载中
查看更多榜单
社区公告
暂无公告
试试用AI创作助手写篇文章吧
+ 用AI写文章