-
2022-03-12 19:42:18
第一步:先导入依赖。
<dependency> <groupId>org.apache.poi</groupId> <artifactId>poi</artifactId> <version>4.1.1</version> </dependency> <dependency> <groupId>org.apache.poi</groupId> <artifactId>poi-ooxml</artifactId> <version>4.1.1</version> </dependency>
简单案例
package com.maxinyang.excel; import org.apache.poi.hssf.usermodel.HSSFCell; 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.ss.util.CellRangeAddress; import org.apache.poi.ss.util.WorkbookUtil; import java.io.*; import java.util.ArrayList; import java.util.List; /** * * 无样式 无图片 导出xls 案例; * 作者:killgod * 口号:天王盖地虎 */ public class Excel { public static void main(String[] args) { /** * 模拟数据库数据 */ List<User> users = new ArrayList<>(); users.add(new User("老马1","18","河南洛阳")); users.add(new User("老马2","18","河南洛阳")); users.add(new User("老马3","18","河南洛阳")); users.add(new User("老马4","18","河南洛阳")); users.add(new User("老马5","18","河南洛阳")); users.add(new User("老马6","18","河南洛阳")); users.add(new User("老马7","18","河南洛阳")); users.add(new User("老马8","18","河南洛阳")); users.add(new User("老马9","18","河南洛阳")); users.add(new User("老马10","18","河南洛阳")); /** *创建HSSFWorkbook对象(excel的文档对象),本实例是导出扩张名为xls(office2003)。 * 如果需要导出扩展名xlsx(office2007以后版本),只需要把文中HSSF改为XSSF即可, * 如 HSSFWorkbook改为XSSFWorkbook。 */ HSSFWorkbook wb = new HSSFWorkbook(); HSSFSheet userTable = wb.createSheet("用户表"); /** * HSSFRow 代表行 0 = 表的第一行 * HSSFCell 代表列 0 = 第一行第一列 * 注意 : 单元行单元列下标从零开始 */ HSSFRow row0 = userTable.createRow(0); HSSFCell cell0 = row0.createCell(0); // 设置内容 cell0.setCellValue("用户表格一览"); // 合并单元格 起始行 截至列 起始列 截至行 userTable.addMergedRegion(new CellRangeAddress(0,0,0,4)); //设置单元列名 HSSFRow row1 = userTable.createRow(1); row1.createCell(0).setCellValue("姓名"); row1.createCell(1).setCellValue("年龄"); row1.createCell(2).setCellValue("住址"); // 循环内容 for (int i = 0; i < users.size(); i++) { User user = users.get(i); HSSFRow row = userTable.createRow(i + 2); row.createCell(0).setCellValue(user.getName()); row.createCell(1).setCellValue(user.getAge()); row.createCell(2).setCellValue(user.getAddress()); } try { // 文件名称 String fileName = System.currentTimeMillis() + ".xls"; FileOutputStream fileOutputStream = new FileOutputStream("F:\\学习测试文件\\execl\\" + fileName); wb.write(fileOutputStream); fileOutputStream.close(); } catch (IOException e) { e.printStackTrace(); } } }
如何修改单元格样式:
更多相关内容 -
java使用POI导出 Excel工具类
2018-08-14 13:35:12java使用POI导出 Excel+图片工具类 ,里面含有poi jar包,只调用接口即可直接保存Excel。使用的时候需先把数据封装,具体包装需根据实际导出数据进行处理。文件demo中只提供包装格式。 -
poi导出excel demo
2017-10-21 11:40:29poi导出excel demo,poi导出excel demo,poi导出excel demo,poi导出excel demo,poi导出excel demo, -
Poi导出Excel工具类
2019-01-07 13:12:49Poi导出Excel工具类 支持大数据量 多sheet页方式 已经封装好,直接拿来调用里面的方法传入参数就行 很简单 -
poi导出excel
2017-07-05 14:28:52poi导出excel工具类,参考代码 -
apache poi 导出excel、word
2019-03-17 13:35:17apache poi 导出excel、word,替换word内容,导出word-文本、图片、表格 -
Java利用poi导出excel表格.zip
2018-07-09 14:09:11Java利用poi导出excel表格.zipJava利用poi导出excel表格.zip -
Java利用poi导出excel表格
2017-07-23 21:14:55Java利用poi导出excel表格 -
POI导出Excel表格通用工具类
2018-05-10 16:04:25利用POI实现Java导出Excel表格,为了实现以后通用,做成了一个利用Java的反射机制做成的万金油式工具类,只需要给工具类传入固定的几个参数(映射字段的map集合,数据集合,实体类的Claas等),就可以实现导出Excel,该... -
java poi导出Excel上传实例 可直接使用
2016-12-14 14:49:02使用apach poi 导出Excel,可直接在项目中使用使用apach poi 导出Excel,可直接在项目中使用使用apach poi 导出Excel,可直接在项目中使用 -
POI导出Excel工具类,自动设置标题 列名 文件名,可插入图片,合并单元格
2017-12-06 16:51:20POI导出Excel工具类,自动设置标题 列名 文件名,可插入图片,合并单元格 -
POI导出Excel表格
2017-11-13 20:29:42该实例集成maven开发环境,里面讲解了POI导入和导出Excel表格的基本用法 -
JAVA POI导出EXCEL代码
2016-12-21 14:08:40JAVA POI导出EXCEL代码 -
Java Web使用POI导出Excel的方法详解
2020-08-30 09:09:12主要介绍了Java Web使用POI导出Excel的方法,结合实例形式详细分析了Java Web使用POI导出Excel的具体操作步骤、实现技巧与相关注意事项,需要的朋友可以参考下 -
apache POI 导出Excel 设置打印
2014-12-09 15:54:52apache POI 导出Excel 设置打印 打印区域 打印方向 缩放比例 水平居中 -
Java poi导出Excel下载到客户端
2020-08-28 02:31:10主要为大家详细介绍了Java poi导出Excel下载到客户端的相关方法,具有一定的参考价值,感兴趣的小伙伴们可以参考一下 -
Java 利用poi 导出excel 工具类,超实用,简单
2018-12-17 10:11:55* 这是一个通用的方法,利用了JAVA的反射机制,可以将放置在JAVA集合中并且符号一定条件的数据以EXCEL 的形式输出到指定IO设备上 * * @param title * 表格标题名 * @param headers * 表格属性列名数组 ... -
java poi导出excel
2018-04-09 09:51:15里面是完整的java程序,导入可执行,根据数据生成excel文件,http://localhost:8080/poi/export -
Springboot POI导出Excel(浏览器)
2020-08-19 04:53:02主要为大家详细介绍了Springboot POI导出Excel,文中示例代码介绍的非常详细,具有一定的参考价值,感兴趣的小伙伴们可以参考一下 -
poi导出excel二次封装,简单易用,完全不需要了解poi的api就可以使用
2016-09-20 17:44:43对poi导出excel进行了二次封装,封装后只需要使用模板导出excel就可以了,简单易用,example包里面有几个实例,可以看看,该工程已经上传到github上了,有兴趣的同学可以一起来改进它,... -
poi导出excel生成下拉列表
2014-08-20 15:41:25poi作为导出excel常用的工具,方便快捷。对于excel指定下拉列表的列,如何生成呢?本文提供如何生成下拉列表的excel列 -
poi导出excel表格
2018-03-26 09:35:14web网页导出excel表格,不必生成excel实体文件,减少垃圾文件的产出 -
Java POI 导出Excel 2007 实例源代码
2016-02-15 16:56:26Java POI 导出Excel 2007简单实例源代码 该源代码的jar包,Java POI导出EXCEL经典实现 -
java 使用poi导出excel工具类
2013-11-25 00:56:36java的poi的导入工具类,只需要传入两个arrayList,一个是execl的标题,一个是ececl的数据,就可以直接导出到execl里面,支持最新的execl,全新封装的,让每一个人都会使用poi导出execl! -
Java中使用POI导出excel文件
2021-03-18 22:29:10Java中使用POI导出excel文件前言需要的jar包上代码使用JDBC连接数据库获取导出的数据MySQL数据库表结构实体类代码DBHelper连接MySQL数据库数据操作Dao类导出excel文件的工具类代码运行测试代码运行结果总结 ...Java中使用POI导出excel文件
前言
在系统开发中最常用的功能就是列表数据的导出了,Java中常用的方法是用apache的POI进行操作的,现在我们就一起来学习下POI导出excel文件的基本用法。
需要的jar包
上代码
使用JDBC连接数据库获取导出的数据
MySQL数据库表结构
实体类代码
package com.cgp.excelexport.pojo; public class Person { private Long id; private String name; private int age; private String phone; public Long getId() { return id; } public void setId(Long id) { this.id = id; } public String getName() { return name; } public void setName(String name) { this.name = name; } public int getAge() { return age; } public void setAge(int age) { this.age = age; } public String getPhone() { return phone; } public void setPhone(String phone) { this.phone = phone; } @Override public String toString() { return "Person{" + "id=" + id + ", name='" + name + '\'' + ", age=" + age + ", phone='" + phone + '\'' + '}'; } }
DBHelper连接MySQL数据库
package com.cgp.excelexport.utils; import java.sql.Connection; import java.sql.DriverManager; public class DBHelper { //MySQL数据库驱动 private static final String driver = "com.mysql.jdbc.Driver"; //数据库连接地址 private static final String url = "jdbc:mysql://localhost:3306/test_1?useUnicode=true&characterEncoding=UTF-8"; //数据库用户名 private static final String username = "root"; //数据库密码 private static final String password = "root"; //声明数据库连接对象 private static Connection conn = null; //静态代码块先加载驱动 static { try { Class.forName(driver); } catch (ClassNotFoundException e) { e.printStackTrace(); } } //创建数据库连接,供外部调用 public static Connection getConnection() throws Exception { if(conn==null) { //连接数据库 conn = DriverManager.getConnection(url, username, password); return conn; } return conn; } }
这里有静态代码块,静态方法和静态的常量,小伙伴们可以思考下这三个在类中加载顺序,在下面的评论区互相讨论下。
数据操作Dao类
package com.cgp.excelexport.dao; import com.cgp.excelexport.pojo.Person; import com.cgp.excelexport.utils.DBHelper; import java.sql.Connection; import java.sql.PreparedStatement; import java.sql.ResultSet; import java.util.ArrayList; import java.util.List; public class PersonDao { private static Connection conn = null; private static PreparedStatement pst = null; private static ResultSet rs = null; public List<Person> getPersonList() { List<Person> list = new ArrayList<>(); try { conn = DBHelper.getConnection(); String sql = "select * from person"; pst = conn.prepareStatement(sql); rs = pst.executeQuery(); while (rs.next()) { Person person = new Person(); person.setId(rs.getLong(1)); person.setName(rs.getString(2)); person.setAge(rs.getInt(3)); person.setPhone(rs.getString(4)); list.add(person); } } catch (Exception e) { e.printStackTrace(); } return list; }
我这里使用最原始的JDBC来连接数据库,大家现实开发中会用到mybatis这种持久化框架,请以实际开发为准。
导出excel文件的工具类代码
package com.cgp.excelexport.utils; import com.cgp.excelexport.pojo.Person; import org.apache.poi.ss.usermodel.*; import org.apache.poi.xssf.streaming.SXSSFWorkbook; import java.io.FileOutputStream; import java.io.IOException; import java.util.List; public class ExportExcelUtil { public static void ExportExcel(List<Person> list, String[] titles) { SXSSFWorkbook wb = new SXSSFWorkbook(100); Sheet sheet = wb.createSheet(); Row row = sheet.createRow(0); //给单元格设置样式 CellStyle cellStyle = wb.createCellStyle(); Font font = wb.createFont(); //设置字体大小 font.setFontHeightInPoints((short) 12); //设置字体加粗 font.setBold(true); //给字体设置样式 cellStyle.setFont(font); //设置单元格背景颜色 cellStyle.setFillForegroundColor(IndexedColors.GREY_25_PERCENT.getIndex()); //设置单元格填充样式(使用纯色背景颜色填充) cellStyle.setFillPattern(FillPatternType.SOLID_FOREGROUND); for (int i = 0; i < titles.length; i++) { Cell cell = row.createCell(i); cell.setCellValue(titles[i]); cell.setCellStyle(cellStyle); //设置列的宽度 sheet.setColumnWidth(i, 200*50); } for (int j = 0; j < list.size(); j++) { Row rowData = sheet.createRow(j + 1); Person person = list.get(j); Cell cell = rowData.createCell(0); cell.setCellValue(person.getId()); Cell cell2 = rowData.createCell(1); cell2.setCellValue(person.getName()); Cell cell3 = rowData.createCell(2); cell3.setCellValue(person.getAge()); Cell cell4 = rowData.createCell(3); cell4.setCellValue(person.getPhone()); } String fileName = "D:/人员信息导出.xlsx"; try { FileOutputStream fileOutputStream = new FileOutputStream(fileName); wb.write(fileOutputStream); wb.close(); } catch (IOException e) { e.printStackTrace(); } } }
运行测试代码
package com.cgp.excelexport.test; import com.cgp.excelexport.dao.PersonDao; import com.cgp.excelexport.pojo.Person; import com.cgp.excelexport.utils.ExportExcelUtil; import java.util.List; public class ExportExcelTest { public static void main(String[] args) { PersonDao personDao = new PersonDao(); List<Person> list = personDao.getPersonList(); String[] titles = {"编号","姓名","年龄","手机号"}; ExportExcelUtil.ExportExcel(list, titles); System.out.println("人员数据导出成功!"); } }
运行结果
可以看出excel文件成功的导出到了D盘目录下面总结
以上就是Java中使用JDBC连接数据库获取表数据,使用POI导出excel文件的基本方法,本文仅供参考,请以实际开发业务为准!
-
Java Poi 导出excel(支持各种设置字体、颜色、垂直居中)
2017-03-01 11:46:56Java Poi 导出excel(支持各种设置字体、颜色、垂直居中) -
Springboot使用POI实现导出Excel文件示例
2020-08-31 06:31:48本篇文章主要介绍了Springboot使用POI实现导出Excel文件示例,非常具有实用价值,需要的朋友可以参考下。 -
java poi 导出excel jar包
2016-01-21 15:29:59java poi 导出excel jar包 -
POI通用导出Excel(.xls,.xlsx)的方法
2020-08-26 01:12:33主要介绍了POI通用导出Excel(.xls,.xlsx)的方法,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友们下面随着小编来一起学习学习吧
收藏数
29,552
精华内容
11,820