SSH框架 POI建立excel表格弹出文件选择目录后保存到本地
2016-12-14 16:20
483 查看
初学POI和SSH框架,通过这几天整理各个大牛们的代码,终于整出一个能用的了,以最简单的例子为例
通过POI建立excel表格后点击下载能够下载该excel表格到本地中
action层
我是做的一个题库,以文字题题库为例
QuestionsService.java
struts.xml
jsp
效果如图
通过POI建立excel表格后点击下载能够下载该excel表格到本地中
action层
我是做的一个题库,以文字题题库为例
package com.emsp.website.safetyStudy.action; import java.text.SimpleDateFormat; import java.util.Date; import java.util.List; import javax.annotation.Resource; import org.apache.struts2.ServletActionContext; import org.springframework.context.annotation.Scope; import org.springframework.stereotype.Controller; import com.emsp.website.common.base.impl.BaseActionImpl; import com.emsp.website.safetyStudy.domain.QuestionA; import com.emsp.website.safetyStudy.domain.QuestionB; import com.emsp.website.safetyStudy.domain.QuestionC; import com.emsp.website.safetyStudy.domain.QuestionD; import com.emsp.website.safetyStudy.domain.Questions; import com.emsp.website.safetyStudy.service.QuestionsService; import com.emsp.website.system.domain.Sys_User; import com.opensymphony.xwork2.ActionContext; import java.io.File; import java.io.FileInputStream; import java.io.IOException; import java.io.InputStream; import jxl.Sheet; import jxl.Workbook; @Controller @Scope("prototype") public class SafetyStudyIndexAction extends BaseActionImpl<Questions> { private static final long serialVersionUID = 1L; private Questions model = new Questions(); @Resource private QuestionsService questionsService; private InputStream inputStream; public InputStream getInputStream() { return inputStream; } public void setInputStream(InputStream inputStream) { this.inputStream = inputStream; } public Questions getModel() { return model; } public void prepare() throws Exception { } // *****************************************************************// /** * 下载题库类型:下载文字题模板 * @throws IOException * @throws Exception */ public String downloadText() throws Exception{ setInputStream(questionsService.exportText()); return "downloadText" ; } }Service层
QuestionsService.java
package com.emsp.website.safetyStudy.service; import java.io.InputStream; import java.util.List; import com.emsp.website.safetyStudy.domain.Questions; public interface QuestionsService { InputStream exportText();//下载文字题模板 }QuestionsServiceImpl.java
package com.emsp.website.safetyStudy.service.impl; import java.io.File; import java.io.FileInputStream; import java.io.FileOutputStream; import java.io.InputStream; import java.io.OutputStream; import java.util.List; import javax.annotation.Resource; import org.apache.poi.hssf.usermodel.HSSFCellStyle; import org.apache.poi.hssf.usermodel.HSSFFont; import org.apache.poi.hssf.usermodel.HSSFRow; import org.apache.poi.hssf.usermodel.HSSFSheet; import org.apache.poi.hssf.usermodel.HSSFWorkbook; import org.apache.poi.hssf.util.HSSFColor; import org.springframework.stereotype.Service; import org.springframework.transaction.annotation.Transactional; import com.emsp.website.safetyStudy.dao.QuestionsDao; import com.emsp.website.safetyStudy.domain.Questions; import com.emsp.website.safetyStudy.service.QuestionsService; @Service @Transactional public class QuestionsServiceImpl implements QuestionsService { @Resource private QuestionsDao questionsDao; /** * 下载文字题 */ public InputStream exportText() { String fileName = "text_template.xls"; HSSFWorkbook wb = new HSSFWorkbook(); //工作表 HSSFSheet sheet = wb.createSheet("sheet1"); //行 HSSFRow row = sheet.createRow(0); //单元格 row.createCell(0).setCellValue("文字题题干"); row.createCell(1).setCellValue("A选项"); row.createCell(2).setCellValue("B选项"); row.createCell(3).setCellValue("C选项"); row.createCell(4).setCellValue("D选项"); row.createCell(5).setCellValue("答案"); row.createCell(6).setCellValue("说明:本模板适用于文字题题型上传模板,内容以此表头为例,此列不能添加内容"); //格式化,设置单元格的样式 sheet.setColumnWidth(0, 6000); sheet.setColumnWidth(1, 6000); sheet.setColumnWidth(2, 6000); sheet.setColumnWidth(3, 6000); sheet.setColumnWidth(4, 6000); sheet.setColumnWidth(5, 2000); sheet.setColumnWidth(6, 8000); HSSFCellStyle style = wb.createCellStyle(); style.setWrapText(true); row.getCell(0).setCellStyle(style); row.getCell(1).setCellStyle(style); row.getCell(2).setCellStyle(style); row.getCell(3).setCellStyle(style); row.getCell(4).setCellStyle(style); row.getCell(5).setCellStyle(style); //设置字体为红色 style = wb.createCellStyle(); style.setWrapText(true); HSSFFont font = wb.createFont(); font.setColor(HSSFColor.RED.index); style.setFont(font); row.getCell(6).setCellStyle(style); File file = new File(fileName); try { OutputStream out=new FileOutputStream(file); wb.write(out); out.flush(); out.close(); } catch (Exception e) { e.printStackTrace(); } InputStream in=null; }
struts.xml
<!-- 下载各种题型模板 --> <result name="downloadText" type="stream"> <param name="inputStream">excelStream</param> <param name="ContentType">application/vnd.ms-excel</param> <param name="contentDisposition">filename="text_template.xls"</param> </result>
jsp
<span ><s:a action="/website/safetyStudy/safetyStudyIndex/safetyStudyIndexAction_downloadText" style="text-decoration:none; color:#000;">文字题上传模板下载</s:a></span>
效果如图
相关文章推荐
- C#下载文件时候弹出选择文件夹保存目录的代码
- MFC中弹出文件保存目录或文件选择框
- C#下载文件时候弹出选择文件夹保存目录的代码
- 关于创建Excel表格问题(保存至指定文件/弹出直接打开还是下载,并可以选择保存路径的对话框)
- 导出本地文件时弹出文件路径选择对话框
- 弹出打开/保存文件对话框 选择文件夹对话框
- JFileChooser 选择目录,选择保存路径,并对保存文件类型进行更改:
- C# 下载 解压 选择文件夹 保存文件 删除目录下文件及文件夹
- C# winform 窗体弹出选择目录或文件 的对话框
- android 选择本地图片并截剪图片保存到,sdcard指定目录中
- SAP 导出本地文件时弹出文件路径选择对话框
- 弹出窗口,选择本地文件。
- windows目录选择 文件选择 文件保存对话框
- SAP ABAP 文件打开和保存时候,路径选择的弹出框 cl_gui_frontend_services
- 保存网页文件目录中所有文件到本地
- android 选择本地图片并截剪图片保存到,sdcard指定目录中
- 选择文件对话框、保存文件对话框和选择目录对话框
- c#保存文件时候的弹出选择要保存的文件夹带新建文件夹效果的类代码
- 目录选择对话框、文件打开或保存对话框、字体对话框和颜色对话框
- jsp内存数据下载到本地--弹出的文件保存框时 两次调用action中下载方法问题