java excel导出 保存路径_[转载]poi导出excel,可以自定义保存路径

该博客介绍了如何使用Apache POI库在Java中导出Excel文件,强调了其相对于JS导出的安全性优势。文章详细讲解了在Action类中创建和填充Excel的工作流程,包括设置表头、获取数据、写入数据等步骤,并展示了如何自定义保存路径。同时,提到了Struts中对应的配置和JSP页面的简单实现。
摘要由CSDN通过智能技术生成

poi导出excel比js导出excel安全性更好,在使用poi导出excel时,先要导入poi-3.5-FINAL-20090928.jar包到你项目的lib目录下,我这里选择是3.5版的

1.action类

package com.szallway.phr2.portal.action;

import java.io.ByteArrayInputStream;

import java.io.ByteArrayOutputStream;

import java.io.FileNotFoundException;

import java.io.FileOutputStream;

import java.io.IOException;

import java.io.InputStream;

import java.text.SimpleDateFormat;

import java.util.Date;

import java.util.Iterator;

import java.util.List;

import java.util.Map;

import org.apache.poi.hssf.usermodel.HSSFRow;

import org.apache.poi.hssf.usermodel.HSSFSheet;

import org.apache.poi.hssf.usermodel.HSSFWorkbook;

import org.apache.struts2.interceptor.RequestAware;

import org.apache.struts2.interceptor.SessionAware;

import com.opensymphony.xwork2.ActionSupport;

import com.opensymphony.xwork2.ModelDriven;

import com.szallway.phr2.portal.factory.ServiceFactory;

import com.szallway.phr2.portal.po.Account;

import com.szallway.phr2.portal.po.Counter;

import com.szallway.phr2.portal.po.Friend;

import com.szallway.phr2.portal.po.Healthbackground;

import com.szallway.phr2.portal.po.Permission;

import com.szallway.phr2.portal.po.Profile;

import com.szallway.phr2.portal.service.CounterService;

import com.szallway.phr2.portal.service.FriendService;

import com.szallway.phr2.portal.service.HealthbackgroundService;

import com.szallway.phr2.portal.service.PermissionService;

import com.szallway.phr2.portal.service.ProfileService;

import com.szallway.phr2.portal.util.ProfileIDGender;

public class FriendAction extends ActionSupport implements SessionAware,RequestAware, ModelDriven{

private Map session;

private Map request;

private Friend friend;

private String areacode;

private int profid;

private InputStream excelStream;  //定义一输入流

private String fileName; //文件名

public String getFileName() {

return fileName;

}

public void setFileName(String fileName) {

this.fileName = fileName;

}

public InputStream getExcelStream() {

return excelStream;

}

public void setExcelStream(InputStream excelStream) {

this.excelStream = excelStream;

}

public int getProfid() {

return profid;

}

public void setProfid(int profid) {

this.profid = profid;

}

public String getAreacode() {

return areacode;

}

public void setAreacode(String areacode) {

this.areacode = areacode;

}

public Friend getFriend() {

return friend;

}

public void setFriend(Friend friend) {

this.friend = friend;

}

@Override

public void setSession(Map session) {

// TODO Auto-generated method stub

this.session = session;

}

@Override

public Object getModel() {

// TODO Auto-generated method stub

friend = new Friend();

return friend;

}

FriendService fser = ServiceFactory.getFriendServieInstance();

//查看所属档案的常用联系人

public String selectfriendlist()throws Exception

{

Profile profile = (Profile)session.get("profile");

List list = null;

try{

list = fser.byprofileid(profile.getProfileid());

}catch(Exception e){

e.printStackTrace();

}

// 没有紧急联系人,就添加

session.put("friendlist", list);

request.put("tabletype", "friendlist");

request.put("sjtabletype", "sjfriendlist");

request.put("pagination", "");

return SUCCESS;

}

//导出所属档案的常用联系人为excel

public String exportFriend() throws Exception{

HSSFWorkbook hssfworkbook = new HSSFWorkbook();

HSSFSheet hssfsheet = hssfworkbook.createSheet();

HSSFRow hssfrow = hssfsheet.createRow(0);

//定义表头

hssfrow.createCell((short)0).setCellValue("姓名");

hssfrow.createCell((short)1).setCellValue("性别");

hssfrow.createCell((short)2).setCellValue("所属关系");

hssfrow.createCell((short)3).setCellValue("手机号码");

hssfrow.createCell((short)4).setCellValue("电子邮件");

Profile profile = (Profile)session.get("profile");

int i = 1;

Iterator it =  fser.byprofileid(profile.getProfileid()).iterator();   //根据档案id查看他所有的常用联系人,并迭代

//添加表内容

while (it.hasNext()) {

Friend friend = (Friend) it.next();

hssfrow = hssfsheet.createRow(i);

hssfrow.createCell((short)0).setCellValue(friend.getFname());

hssfrow.createCell((short)1).setCellValue(friend.getFgender());

hssfrow.createCell((short)2).setCellValue(friend.getFrelationship());

hssfrow.createCell((short)3).setCellValue(friend.getFmobilephone());

hssfrow.createCell((short)4).setCellValue(friend.getFemail());

i++;

}

FileOutputStream fileoutputstream = null;

try {

// fileoutputstream = new FileOutputStream("d:\Friend.xls");

//   hssfworkbook.write(fileoutputstream);

//   fileoutputstream.close();

this.fileName = "friend";

ByteArrayOutputStream baos = new ByteArrayOutputStream();

hssfworkbook.write(baos);

baos.flush();

byte[] aa = baos.toByteArray();

//  String filename = "friend";

excelStream = new ByteArrayInputStream(aa,0, aa.length);

baos.close();

} catch (FileNotFoundException e) {

// TODO Auto-generated catch block

e.printStackTrace();

} catch (IOException e) {

// TODO Auto-generated catch block

e.printStackTrace();

e.printStackTrace();

}

return SUCCESS;

}

@Override

public void setRequest(Map request) {

// TODO Auto-generated method stub

this.request = request;

}

}

2.struts内定义action

application/vnd.ms-excel

excelStream

attachment;filename=" ${fileName}.xls"

3.jsp页面

在jsp页面只需加入导出excel这样一连接或者表单按钮

4.效果图

7f4b4ffb4aa09367f2e7d06034814d64.gif

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值