社区
Java EE
帖子详情
服务器端生成excel文件 在客户端保存(POI)
jkgao801
2007-05-16 10:58:07
在我的程序中,在客户端(jsp页面)输入数据,然后将数据传入serlvet,servlet中调用javaben 中的一个方法,此方法中用POI 来把 客户端传送来的数据保存到一个excel 中里面. 问题是:
1.直接在bean 里面用FileOutputStream 可以生成一个excel文件到服务器的指定路径下.
但是 ,如何在客户端通过选择保存路径,把excle文件保存到客户端.
...全文
1090
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实现
本文将详细介绍如何利用JSF技术实现在
服务器端
生成
Excel
文件
,并直接提供给
客户端
下载的功能。 #### 关键技术与工具 1. **JSF (JavaServer Faces)**:一种基于组件的Java Web应用框架,用于构建动态网页应用。 2. *...
java的
POI
操作
Excel
文件
.pdf
总之,Java的Apache
POI
库为开发者提供了一个强大且灵活的工具,用于在
服务器端
生成
Excel
文件
,满足了企业级应用中常见的报表和数据导出需求。通过利用HSSF接口,开发者可以创建复杂的
Excel
格式,同时保持代码的可...
jsp从服务器下载xls
文件
到
客户端
服务器端
的JSP页面会被编译成Servlet,然后处理HTTP请求并
生成
HTTP响应。在这个场景中,JSP页面作为服务端程序,负责
生成
并提供XLS
文件
。 2. **
文件
下载原理**: 在HTTP协议中,下载
文件
实际上是一个HTTP响应过程...
Android
poi
jar包,
生成
doc
文件
为了避免这种情况,可以考虑分块处理数据,或者使用
服务器端
生成
文档,然后通过网络传输给Android
客户端
。 标签"Android
poi
doc"表明这个话题是关于使用Apache
POI
在Android环境中
生成
doc
文件
的技术。在这个主题下...
POI
实现的
excel
的上传下载
- **创建
Excel
**:在
服务器端
,根据需要
生成
新的数据,可以使用`Workbook`类的实例来创建一个新的
Excel
文件
。创建工作表、行和单元格,然后填充数据。 - **响应下载**:设置Http响应头,指定Content-Type为...
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写文章