poi之Excel文件上传到数据库和导出(结合ssh)
来源:互联网 发布:月相模拟软件 编辑:程序博客网 时间:2024/05/23 20:48
一.文件上传到数据库
1.Jquery相关文件a.jquery-1.8.3.jsb.jquery.ocupload-1.1.2.js2.poi相关jar包,可从网上下载核心包:poi-3.9-20121203.jar(版本可根据需要选择)相关包:根据需要选择是否导入3.上传学生表Student实例及相关代码
//学生模型
public class Student{
private String name;
private String gender;
private int age;
......
}
- //对应数据库表t_student
第一步:前端定义上传按钮
- <input type="button" id="upload" value = "上传"/>
第二步:前端调用js
action:"uploadAction_test.action"//上传请求 name:filename//上传文件名称 params:{}//传递请求参数,可选 onSelect:function(selef,element){}//根据需要选择触发事件 onComplete:function (data, self, element) {}//上传完毕后的回调
- $(function(){
- $("#upload").upload({
- });
- });
第三步:服务端处理action请求
- public class uploadAction extends ActionSupport implements ModelDriven<Sudent> {
- //模型驱动
- private Studnet student = new Student();
- public Studnet getModel() {
- return student;
- }
- private File filename;//对应js中的filename
- public void setFilename(File filename) {
- this.filename=filename;
- }
- public String test ()
- //定义list集合用来封装存储数据
- List<Studnet> list = new ArrayList<Studnet> ();
- //关联excle表,创建excel操作对象
- HSSFWorkbook workbook = new HSSFWorkbook(new FileInputStream(filename));
- //拿到excel表中的sheet
- HSSFSheet sheetAt = workbook.getSheetAt(0);
// 循环遍历sheet,拿到表中的每一行 for (Row row : sheetAt) { //去掉标题行 if(row.getRowNum()==0){ continue; } //拿到每一行并封装成对象,注意拿到的都是Sting类型 String name = row.getCell(0).getStringCellValue(); String age = row.getCell(1).getStringCellValue();
String gender = row.getCell(2).getStringCellValue();
//封装成对象
Student student = new Student (name,Integer.parseInt(age),gender)
//存储到集合
list.add(student);
}
//调用服务层,将集合中的元素取出存到数据库即可
new service().importXls(list);
}
......省略服务层以及dao层的代码
二.导出下载数据到excel 表
第一步:前端下载请求
<input type="button" id = "download" value="导出"/>
$(function(){
$("#download").click(function(){
window.location.href="downloadAction_exportXls.action";
});
});
第二步:服务端处理请求
public class DownloadAction extends ActionSupport impelemts ModelDriven<Student> {
public String exportXls() {
//通过服务层和dao层,查询数据库,获得需要导出的数据
List<Studnet> list = daoImpl.getStudnets()//简写直接调用dao
//创建excel操作对象
HSSFWorkbook workbook = new HSSFWorkbook();
//创建sheet
HSSFSheet sheet = workbook.createSheet("学生数据");
//设置表格的标题行
HSSFRow headRow = sheet.createRow(0);
headRow.createCell(0).setCellValue("姓名");
headRow.createCell(1).setCellValue("年龄");
headRow.createCell(2).setCellValue("性别");
//遍历集合,将每一条记录写入excel表
for (Student student : list) {
HSSFRow row = sheet.createRow(sheet.getLastRowNum() + 1);
row.createCell(0).setCellValue(studetn.getName());
row.createCell(1).setCellValue(subarea.getAge());
row.createCell(2).setCellValue(subarea.getGender());
}
//创建输出流
ServletOutputStream os = ServletActionContext.getResponse().getOutputStream();
//下载的文件名
String filename = "学生数据.xsl"
//利用工具类处理文件名,做到浏览器兼容
filename=FileUtils.encodeDownloadFilename(filename,ServletActionContext.getRequest().getHead("user-agent");
//设置响应头
ServletActionContext.getResponse().setContentType(ServletActionContext.getServletContext.getMimeType(filename));
ServletActionContext.getRespone().setHeader("content-disposition","attachement;filename="+filename);
workbook.write(os);
}
}
//文件工具类public class FileUtils { /** * 下载文件时,针对不同浏览器,进行附件名的编码 * * @param filename * 下载文件名 * @param agent * 客户端浏览器 * @return 编码后的下载附件名 * @throws IOException */ public static String encodeDownloadFilename(String filename, String agent) throws IOException { if (agent.contains("Firefox")) { // 火狐浏览器 filename = "=?UTF-8?B?" + new BASE64Encoder().encode(filename.getBytes("utf-8")) + "?="; filename = filename.replaceAll("\r\n", ""); } else { // IE及其他浏览器 filename = URLEncoder.encode(filename, "utf-8"); filename = filename.replace("+"," "); } return filename; }}
0 0
- poi之Excel文件上传到数据库和导出(结合ssh)
- POI 导入导出Excel文件到数据库
- POI 导入导出Excel文件到数据库
- SSH框架,POI导出数据到Excel
- POI 导入导出Excel文件到数据库 亲测
- POI 导入导出Excel文件到数据库(转载)
- POI 导入导出Excel文件到数据库(转载)
- POI---JAVA导出Excel文件<三>SSH搭建&读取数据库&WEB环境导出Excel
- POI导入导出Excel到数据库
- POI导出数据库数据到excel
- poi实现数据库数据导出到excel
- poi报表实现,导出到excel文件
- 用POI导出数据到excel文件
- EXT结合POI导出数据到Excel表格
- EXT结合POI导出数据到Excel表格
- EXT结合POI导出数据到Excel表格
- poi将数据库数据导出excel文件
- poi操作oracle数据库导出excel文件
- 令人头疼的java Tree整合bootstrap ace tree
- ioc和aop
- SpringMVC表单标签简介
- Machine Learning主要数据集
- 【泛型】泛型方法
- poi之Excel文件上传到数据库和导出(结合ssh)
- Ajax学习第二节_发送post请求
- Activity生命周期监测接口-Application的ActivityLifecycleCallbacks接口
- Ajax学习第三节_处理xml数据
- 代码质量-圈复杂度及其计算
- 第五个页面 移动端
- Ajax学习第四节_处理json数据
- Sublime Text 3打开界面如何设置缩进形式?设置缩进为直线而非小圆点!空格space改为标签Tab缩进?
- mui框架下拉刷新上拉加载,click事件无效的解决方法