Java中用POI实现将数据导出到Excel
作者:忆晨丶 发布时间:2022-09-22 00:06:09
标签:java,数据,导出,Excel,POI
一、前言
数据导出为Excel在我们写项目的过程中经常用到
需要用到的jar包 poi-3.17.jar
二、具体实现步骤
//第一步创建一个webbook,对应一个Excel文件
HSSFWorkbook wb=new HSSFWorkbook();
//第二步,在webbook中添加一个sheet,对应Excel文件中的sheet
HSSFSheet sheet=wb.createSheet("食物信息数据");
//第三步,在sheet中添加表头第0行
HSSFRow row = sheet.createRow(0);
//第四步,创建单元格,并设置表头居中
HSSFCellStyle style = wb.createCellStyle();
style.setAlignment(HorizontalAlignment.CENTER);//居中格式
HSSFCell cell = row.createCell(0);
cell.setCellValue("编号");
cell.setCellStyle(style);
cell=row.createCell((short)1);
cell.setCellValue("名称");
cell.setCellStyle(style);
cell=row.createCell((short)2);
cell.setCellValue("类型");
cell.setCellStyle(style);
cell=row.createCell((short)3);
cell.setCellValue("单价");
cell.setCellStyle(style);
cell=row.createCell((short)4);
cell.setCellValue("库存");
cell.setCellStyle(style);
//第五步,写入实体数据,从数据库拿数据
FoodController controller=new FoodController();
List<Foods> foodsList = controller.foodsList(null, null);
for (int i = 0; i < foodsList.size(); i++) {
//创建单元格,并赋值
row=sheet.createRow(i+1);
Foods foods = foodsList.get(i);
row.createCell((short)0).setCellValue(foods.getId());
row.createCell((short)1).setCellValue(foods.getName());
row.createCell((short)2).setCellValue(foods.getType());
row.createCell((short)3).setCellValue(foods.getPrice());
row.createCell((short)4).setCellValue(foods.getNum());
}
//第六步,下载Excel
OutputStream out=null;
out=response.getOutputStream();
String fileName="食物信息.xls";
response.setContentType("application/x-=msdownload");
response.setHeader("Content-Disposition", "attachment; filename="
+URLEncoder.encode(fileName, "UTF-8"));
wb.write(out);
三、实现效果图
导出成功后数据成功显示
来源:https://%bcnet%/cst522445906/article/details/115903661


猜你喜欢
- SpringMVC中的 * 用于拦截控制器方法的执行,执行在Controller前后,和视图渲染完成后。如下图所示:一、创建 * 继承Han
- using Word;下面的例子中包括C#对Word文档的创建、插入表格、设置样式等操作:(例子中代码有些涉及数据信息部分被省略,重要是介绍
- 定时任务1import lombok.extern.slf4j.Slf4j;/** * @author Created by niugang
- 前言大家好,我是小郭,前面我们学习了利用Semaphore来防止多线程同时操作一个资源,通常我们都会利用并行来优化性能,但是对于串行化的业务
- 1.微信配置信息 global.properties2.方法wxpay用于生成预支付订单信息方法notifyWeiXinPay用于微信支付成
- @Autowired注入static接口问题@Autowired自动注入普通service很方便如:@Componentpublic cla
- BufferedReaderBufferedReader 是缓冲字符输入流。它继承于Reader。 BufferedReader 的作用是为
- 今天遇到这样一个bug:客户端POST到服务器的一段数据导致服务器端发生未知异常。服务器端确认是编码转换错误。于是截取网络数据包进行分析,发
- 在软件开发过程中经常需要知道程序运行的大概时间,或者需要在规定时间内取数据,这是可以使用下面的方法获取时间段,还可以用在限时循环方法一:/*
- 前言在.NET Framework中,Hashtable是System.Collections命名空间提供的一个容器,用于处理和表现类似ke
- 前言volatile相关的知识其实自己一直都是有掌握的,能大概讲出一些知识,例如:它可以保证可见性;禁止指令重排。这两个特性张口就来,但要再
- Fragment Android是在Android 3.0 (API level 11)开始引入Fragment的。 可以把Fragment
- refresh()该方法是 Spring Bean 加载的核心,它是 ClassPathXmlApplicationContext 的父类
- 一、Has方法与With方法如:A类必须包含B类一个不为null的实例,而B类可选择时候包含A类一个实例。A.HasRequired(a =
- 最近帮朋友做了一个动画菜单,感觉有一定的实用价值,就在此给大家分享一下,先看看效果:实现思路:从图中可以看出,这三个(或更多,需要自己再实现
- 什么是序列化: 序列化就是把内存中的对象,转换成字节序列(或其他数据传输协议)以便于存储到磁盘(持久化)
- 有时我们获取到了页面需要在Java代码中进行解析,获取html中的数据,Jsoup是一个很方便的工具。一、什么是Jsoup?官网网站:htt
- 本文实例讲述了C#接口interface用法。分享给大家供大家参考。具体如下:using System;//example of inter
- Android 中启动自己另一个程序的activity如何实现可以使用action,举例: 1. 比如建立activity4,我
- 这几天做项目,有些地方的图片需要用到圆形图片,所以百度了一下,在github上找到一个开源项目,处理很简单,效果如下:使用起来特别简单,一共