1、前台写一个按钮跳到控制层

<a href="account.do?flag=out" >导出表格</a>

2、控制层导出数据方法

@RequestMapping(value = "account.do",params = "flag=out")
//String视图解析器
public void out(HttpServletResponse response,HttpSession session,HttpServletRequest request)
throws ServletException, IOException{

// 获取相对路径
String filepath = request.getServletContext().getRealPath("/")+"\\include\\template\\scoreInfo.xls";
File file = new File(filepath);

FileInputStream fileIn = new FileInputStream(file);
HSSFWorkbook workBook = new HSSFWorkbook(fileIn);

HSSFRow row = null;
HSSFCell cell = null;

// 第一个sheet页
HSSFSheet sheet = workBook.getSheetAt(0);
// 起始行
int startRow = 4;
row = sheet.getRow(2);
//填写制作人 第2个格
cell = row.getCell((short) 1);
session = request.getSession();
if(session.getAttribute("realName")!=null) {
cell.setCellValue((String)session.getAttribute("realName"));
}else {
cell.setCellValue("");
}

// 填写日期
HSSFRow row2 = null;
HSSFCell cell2 = null;
row2 = sheet.getRow(2);
// 第6个格
cell2 = row2.getCell((short) 5);
SimpleDateFormat sdf = new SimpleDateFormat("yyyy-MM-dd");
String date = sdf.format(new Date());
cell2.setCellValue(date);

// excel表格需要写入的信息
List<Account> list = accountMapper.sellectAll();
for (int i = 0; i < list.size(); i++) {
row = sheet.getRow(startRow+i);
// NO从1开始
cell = row.getCell((short) 0);

cell.setCellValue(i+1);
// 账号名 Accname
cell = row.getCell((short) 1);

cell.setCellValue(list.get(i).getAccname());
// 姓名 Accrealname
cell = row.getCell((short) 2);

cell.setCellValue(list.get(i).getAccrealname());
// 电话 Accphone
cell = row.getCell((short) 3);

cell.setCellValue(list.get(i).getAccphone());
// 生日Accbirthday
cell = row.getCell((short) 4);

cell.setCellValue(list.get(i).getAccbirthday());
// 角色
cell = row.getCell((short) 5);

cell.setCellValue(list.get(i).getRole().getRolename());
// 状态
cell = row.getCell((short) 6);

cell.setCellValue(list.get(i).getStatus().getStatusname());

}

OutputStream out = response.getOutputStream();

response.resetBuffer();
response.addHeader("Pragma", "no-cache");
response.setHeader("Content-Disposition", "attachment;filename="
+ URLEncoder.encode("scoreInfo", "UTF-8") + ".xls");
try {
workBook.write(out);
} finally {
fileIn.close();
out.close();
response.flushBuffer();
workBook.close();
}

}

3、数据需要导入的Excel表格模板

注意日期:右键设置单元格格式  日期格式

4、先运行一下程序会报找不到文件路径异常

按照报错的地址建立文件夹以及把表格放入

5、再运行一下程序就好了

导出数据在exlcel上的更多相关文章

  1. MySQL 导出数据

    MySQL中你可以使用SELECT...INTO OUTFILE语句来简单的导出数据到文本文件上. 使用 SELECT ... INTO OUTFILE 语句导出数据 以下实例中我们将数据表 cnbl ...

  2. 吴裕雄 31-MySQL 导出数据

    MySQL中你可以使用SELECT...INTO OUTFILE语句来简单的导出数据到文本文件上. show global variables like '%secure%';SHOW VARIABL ...

  3. 三十二、MySQL 导出数据

    MySQL 导出数据 MySQL中你可以使用SELECT...INTO OUTFILE语句来简单的导出数据到文本文件上. 使用 SELECT ... INTO OUTFILE 语句导出数据 以下实例中 ...

  4. 吴裕雄--天生自然MySQL学习笔记:MySQL 导出数据

    MySQL中可以使用SELECT...INTO OUTFILE语句来简单的导出数据到文本文件上. 使用 SELECT ... INTO OUTFILE 语句导出数据 以下实例中将数据表 runoob_ ...

  5. 导出数据到Excel --使用ExcelReport有感

    先看图,这是几个月前用NPOI写的导出数据到Excel,用了上百行代码,而且难控制,导出来也比较难看 excel打开的效果 下面是我用ExcelReport类库导出到Excel的操作 1.首先引用Ex ...

  6. Dynamics CRM导出数据到Excel

    原创地址:http://www.cnblogs.com/jfzhu/p/4276212.html 转载请注明出处 Pivot Table是微软BI的一个重要工具,所以这里讲一下Dynamics CRM ...

  7. java 导出数据为word文档(保持模板格式)

    导出数据到具体的word文档里面,word有一定的格式,需要保持不变 这里使用freemarker来实现: ①:设计好word文档格式,需要用数据填充的地方用便于识别的长字符串替换  如  aaaaa ...

  8. MVC导出数据到EXCEL新方法:将视图或分部视图转换为HTML后再直接返回FileResult

    导出EXCEL方法总结 MVC导出数据到EXCEL的方法有很多种,常见的是: 1.采用EXCEL COM组件来动态生成XLS文件并保存到服务器上,然后转到该文件存放路径即可: 优点:可设置丰富的EXC ...

  9. SQL Server2000导出数据时包含主键、字段默认值、描述等信息

    时经常用SQL Server2000自带的导出数据向导将数据从一台数据库服务器导出到另一台数据库服务器: 结果数据导出了,但表的主键.字段默认值.描述等信息却未能导出,一直没想出什么方法,今天又尝试了 ...

随机推荐

  1. 【VBA】读取配置文件存入字典型变量中

    配置文件:  源码: Dim Co As Object '设为全局变量 Function 读取cfg() As Boolean Dim strcfg As String strcfg = " ...

  2. 树莓派写入openwrt作为路由器

    需要:树莓派4B,SD卡一张,SD卡读卡器一枚,openwrt镜像一份. 环境: Linux(deepin 20). 将SD卡插入读卡器,读卡器再插入电脑. 首先查看SD卡: sudo fdisk - ...

  3. .NET 6 亮点之工作负载,它是统一 .NET 的基础

    随着.NET 6 Preview 5的发布,大家认真的看相关文章或者是动手做一个MAUI示例的时候就会碰到一个新概念工作负载(workload),相关规范参见 https://github.com/d ...

  4. 如何避免Nginx将url decode

    灵感来自:https://my.oschina.net/jastme/blog/528541 这是最近玩微服务架构遇到的一个情况,因为Spring Boot 1.5的网关不支持websocket的转发 ...

  5. JDK并发包一

    JDK并发包一 同步控制是并发程序必不可少的重要手段,synchronized是一种最简单的控制方法.但JDK提供了更加强大的方法----重入锁 重入锁 重入锁使用java.util.concurre ...

  6. js笔记17

    BOM浏览器对象模型 1.window.open(url,ways) url 是打开的网页地址 ways 打开的方式  _self 2.window.close() 3.浏览器用户的信息 window ...

  7. Linux中su和sudo的用法

    su -#su - oldboy //当执行这个命令的时候表示切换到oldboy用户,并且重新读取用户环境相关配置文件,具体的来说就是执行下用户家目录下.bash_profile和.bashrc文件, ...

  8. NUC980 运行 RT-Thread 驱动 SPI 接口 OLED 播放 badapple

    badapple 是什么,上网随便查了下,没看出个究竟,不过有个关于这个挺火的标签或者主题 < 有屏幕的地方就有 badapple >,网上有很多人用很多方式播放 badapple 动画, ...

  9. 3、mysql的多实例配置(2)

    4.设置mysql多实例启动脚本: (1)3306: [root@backup application]# cat /data/3306/mysql #!/bin/sh . /etc/init.d/f ...

  10. CRM软件从哪些方面帮助企业更上一层楼

    CRM顾客智能管理系统可以将"以顾客为管理中心"的管理模式与高新科技方式紧密结合,协助公司搭建优良的客户关系管理,改进顾客的消費感受,进而提升顾客的满意率,为公司产生大量的盈利.据 ...