1.在index.xml编写代码
<a href="exportExcel">导出Excel</a><br>
2.在struts.xml配置
<struts>
<package name="team" extends="struts-default" namespace="/">
<!--导出Excel-->
<action name="exportExcel" class="com.iteye.action.TestAction"
method="excelExport">
<result type="stream">
<param name="contentType">application/vnd.ms-excel;charset=utf8</param>
<param name="inputName">excelExportStream</param>
<param name="contentDisposition">attachment;filename="student.xls"</param>
</result>
</action>
</package>
</struts>
3.在Action完成Excel导入
public class TestAction extends ActionSupport {
/**
* 导出Excel
*/
public String excelExport(){
return SUCCESS;
}
//返回streamResult需要的输入流类型
public InputStream getExcelExportStream() throws Exception {
FileDao fileDao = new FileDao();
// 工作簿
HSSFWorkbook book = new HSSFWorkbook();
// 获取工作簿的单元
HSSFSheet sheet = book.createSheet();
// 行后在对应的列
HSSFRow row = sheet.createRow(0);
HSSFCell cellold = row.createCell(0);
HSSFCell cellnew = row.createCell(1);
HSSFCell cellpath = row.createCell(2);
// 单元格-表头
cellold.setCellValue("姓名");
cellnew.setCellValue("性别");
cellpath.setCellValue("年龄");
// 获取实体集合
int i = 1;
Iterator it = fileDao.findAll().iterator();
while (it.hasNext()) {
TImage t = (TImage) it.next();
// 行后在对应的列
HSSFRow rowa = sheet.createRow(i);
HSSFCell cellolda = rowa.createCell(0);
HSSFCell cellnewa = rowa.createCell(1);
HSSFCell cellpatha = rowa.createCell(2);
// 单元格-表头
cellolda.setCellValue(t.getOldname());
cellnewa.setCellValue(t.getNewname());
cellpatha.setCellValue(t.getPathimage());
i++;
}
// 输出流
ByteArrayOutputStream by = new ByteArrayOutputStream();
book.write(by);
return new ByteArrayInputStream(by.toByteArray());
}
}