poi 导出数据
介绍
POI是Apache软件基金会用Java编写的免费开源的跨平台的 Java API,Apache POI提供API给Java程序对Microsoft Office格式档案读和写的功能。POI为“Poor Obfuscation Implementation”的首字母缩写,意为“简洁版的模糊实现”。
所以POI的主要功能是可以用Java操作Microsoft Office的相关文件,但是一般我们都是用来操作Excel相关文件。
poi主要用处:
对excel表格的导入导出功能。
将数据库的数据导出到excel表格中。
1.基本的导出功能
版本:03、07
1)HSSFWorkbook :创建的excel文件
2)HSSFSheet :sheet工作簿
3)HSSFRow:行
4)HSSFCell :单元格
2.简单的demo测试
- 添加pom.xml
<!-- poi包 -->
<dependency>
<groupId>org.apache.poi</groupId>
<artifactId>poi</artifactId>
<version>3.17</version>
</dependency>
<dependency>
<groupId>org.apache.poi</groupId>
<artifactId>poi-ooxml</artifactId>
<version>3.17</version>
</dependency>
- 代码测试
public class PoiDemo {
public static void main(String[] args) throws IOException {
//export07();
export03();
}
public static void export07() throws IOException {
//如果是2007版本前的格式则new XSSFWorkbook();
//如果是2003版本前的格式则new HSSFWorkbook();
XSSFWorkbook workbook = new XSSFWorkbook();
//创建一个工作表(sheet页)
XSSFSheet sheet = workbook.createSheet("学生信息");
//创建一行,下标从0开始
XSSFRow row = sheet.createRow(0);
sheet.setColumnWidth(3,20*256);//给第3列设置为20个字的宽度
sheet.setColumnWidth(4,20*256);//给第4列设置为20个字的宽度
//创建这行中的列,下标从0开始,并给该列赋值
XSSFCell cell = row.createCell(0);
cell.setCellValue("姓名");
row.createCell(1).setCellValue("年龄");
row.createCell(2).setCellValue("性别");
row.createCell(3).setCellValue("生日");
row.createCell(4).setCellValue("手机号");
row = sheet.createRow(1);
row.createCell(0).setCellValue("张三");
row.createCell(1).setCellValue("19");
row.createCell(2).setCellValue("男");
row.createCell(3).setCellValue("1999/09/09");
row.createCell(4).setCellValue("13567878765");
row = sheet.createRow(2);
row.createCell(0).setCellValue("王红");
row.createCell(1).setCellValue("18");
row.createCell(2).setCellValue("女");
row.createCell(3).setCellValue("2000/09/09");
row.createCell(4).setCellValue("13567878766");
//file指代硬盘的一个文件位置
File file = new File("C:\\Users\\11054\\Desktop\\学生信息表.xlsx");
FileOutputStream outputStream = new FileOutputStream(file);
//输出流输出
workbook.write(outputStream);
//关liu
outputStream.close();
}
public static void export03() throws IOException {
HSSFWorkbook workbook = new HSSFWorkbook();
HSSFSheet sheet = workbook.createSheet("学生信息");
HSSFRow row = sheet.createRow(0);
sheet.setColumnWidth(3,20*256);//给第3列设置为20个字的宽度
sheet.setColumnWidth(4,20*256);//给第4列设置为20个字的宽度
HSSFCell cell = row.createCell(0);
cell.setCellValue("姓名");
row.createCell(1).setCellValue("年龄");
row.createCell(2).setCellValue("性别");
row.createCell(3).setCellValue("生日");
row.createCell(4).setCellValue("手机号");
row = sheet.createRow(1);
row.createCell(0).setCellValue("张三");
row.createCell(1).setCellValue("19");
row.createCell(2).setCellValue("男");
row.createCell(3).setCellValue("1999/09/09");
row.createCell(4).setCellValue("13567878765");
row = sheet.createRow(2);
row.createCell(0).setCellValue("王红");
row.createCell(1).setCellValue("18");
row.createCell(2).setCellValue("女");
row.createCell(3).setCellValue("2000/09/09");
row.createCell(4).setCellValue("13567878766");
File file = new File("C:\\Users\\11054\\Desktop\\学生信息表.xls");
FileOutputStream outputStream = new FileOutputStream(file);
workbook.write(outputStream);
outputStream.close();
}
}
- 导出成功显示: