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

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

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
好的,针对Java的Apache POI使用实体类导出,我们可以通过以下步骤来实现: 1. 首先,我们需要在pom.xml文件中添加Apache POI的依赖,例如: ```xml <dependency> <groupId>org.apache.poi</groupId> <artifactId>poi</artifactId> <version>3.17</version> </dependency> ``` 2. 然后,我们需要定义一个实体类来存储需要导出的数据,例如: ```java public class User { private String username; private Integer age; // getter/setter 略 } ``` 3. 接下来,我们需要创建一个工具类来实现Excel导出的功能,例如: ```java public class ExcelUtils { public static void exportUsersToExcel(List<User> userList, OutputStream outputStream) throws IOException { // 创建工作簿 Workbook workbook = new HSSFWorkbook(); // 创建工作表 Sheet sheet = workbook.createSheet("用户列表"); // 创建标题行 Row titleRow = sheet.createRow(0); titleRow.createCell(0).setCellValue("用户名"); titleRow.createCell(1).setCellValue("年龄"); // 创建数据行 int rowIndex = 1; for (User user : userList) { Row dataRow = sheet.createRow(rowIndex++); dataRow.createCell(0).setCellValue(user.getUsername()); dataRow.createCell(1).setCellValue(user.getAge()); } // 输出Excel文件 workbook.write(outputStream); workbook.close(); } } ``` 4. 最后,我们可以在Controller中调用工具类来实现Excel导出,例如: ```java @GetMapping("/export") public void exportUsers(HttpServletResponse response) throws IOException { List<User> userList = userService.listUsers(); response.setContentType("application/vnd.ms-excel"); response.setHeader("Content-Disposition", "attachment;filename=users.xls"); ExcelUtils.exportUsersToExcel(userList, response.getOutputStream()); } ``` 通过以上步骤,我们就可以使用Java的Apache POI和实体类来实现Excel导出的功能了。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值