1、工具
工欲善其事,必先利其器,我打算把数据库中的数据导出成为Excel表格,到网上搜了一下需要的工具: - POI
POI下载地址:
- Poi.jar
- 官网下载
相关代码参考:
-java导出数据库的全部表到excel
2、具体操作步骤
- 先把poi的jar导入,导入方式如下:
jar包导入问题
如上方式导入后,但是打包发布时显示找不到对应的包,真是奇怪。
于是按照如下方式:
1 、在src同级别目录下创建libs文件夹;
2、把对应的jar包直接复制进去,简单粗暴;
3、然后在gradle.build文件中添加依赖即可,然后就一切OK。
dependencies
{
compile files('libs/poi.jar')
}
- 接下来就是写代码
private File createExcel(File file) {
if(!file.exists()){
file.mkdirs() ;
}
File filenew = new File(file.getAbsoluteFile()+"/MotionRecord.xls");
// 第一步,创建一个webbook,对应一个Excel文件
HSSFWorkbook wb = new HSSFWorkbook();
// 第二步,在webbook中添加一个sheet,对应Excel文件中的sheet
HSSFSheet sheet = wb.createSheet("table");
// 第三步,在sheet中添加表头第0行,注意老版本poi对Excel的行数列数有限制short
HSSFRow row = sheet.createRow((int) 0);
// 第四步,创建单元格,并设置值表头 设置表头居中
HSSFCellStyle style = wb.createCellStyle();
style.setAlignment(HSSFCellStyle.ALIGN_CENTER); // 创建一个居中格式
HSSFCell cell = row.createCell((short) 0);
cell.setCellValue("UserId");
cell.setCellStyle(style);
cell = row.createCell((short) 1);
cell.setCellValue("time");
cell.setCellStyle(style);
cell = row.createCell((short) 2);
cell.setCellValue("state");
cell.setCellStyle(style);
// 第五步,写入实体数据 实际应用中这些数据从数据库得到,
List list = null;
try {
list = getMotionRecord();
} catch (Exception e1) {
// TODO Auto-generated catch block
e1.printStackTrace();
}
for (int i = 0; i < list.size(); i++)
{
row = sheet.createRow((int) i + 1);
MotionRecord stu = (MotionRecord) list.get(i);
// 第四步,创建单元格,并设置值
row.createCell((short) 0).setCellValue((double) stu.getUserId());
row.createCell((short) 1).setCellValue(stu.getTime());
row.createCell((short) 2).setCellValue((double) stu.getState());
}
// 第六步,将文件存到指定位置
try
{
FileOutputStream fout = new FileOutputStream(filenew);
wb.write(fout);
fout.close();
}
catch (Exception e)
{
e.printStackTrace();
}
return filenew;
}
private List<MotionRecord> getMotionRecord() throws Exception
{
List list = new ArrayList();
// SimpleDateFormat df = new SimpleDateFormat("yyyy-mm-dd");
MotionRecord user1 = new MotionRecord(1, Timestamp.valueOf(LocalDateTime.now()),1);
MotionRecord user2 = new MotionRecord(2, Timestamp.valueOf(LocalDateTime.now()),1);
MotionRecord user3 = new MotionRecord(3, Timestamp.valueOf(LocalDateTime.now()),1);
list.add(user1);
list.add(user2);
list.add(user3);
return list;
}
3、步骤总结
- 第一步,创建一个webbook,对应一个Excel文件
- 第二步,在webbook中添加一个sheet,对应Excel文件中的sheet
- 第三步,在sheet中添加表头第0行,注意老版本poi对Excel的行数列数有限制short
- 第四步,创建单元格,并设置值表头 设置表头居中
- 第五步,写入实体数据 实际应用中这些数据从数据库得到
- 第六步,将文件存到指定位置