对Excel的两个版本的操作,一种为xls(老版本)第二种为 xlsx
在java中经常会有对数据库的操作,当我们需要一个报表,统计时,就需要对excel进行操作。
(因为公司中肯定不止你一个工作人员,还有老板,销售,他们需要查看数据。大多数人懂的的是excel表格)
1、进行pom依赖的导出(poi)
<dependency>
<groupId>org.apache.poi</groupId>
<artifactId>poi</artifactId>
</dependency>
文件上传的依赖
<dependency>
<groupId>commons-fileupload</groupId>
<artifactId>commons-fileupload</artifactId>
</dependency>
时间格式转换的依赖
<dependency>
<groupId>joda-time</groupId>
<artifactId>joda-time</artifactId>
</dependency>
2、xls操作类
1)创建xls对象表格
Workbook workbook = new HSSFWorkbook();
使用xlsx改对象就行(其他操作一模一样)
Workbook workbook = new XSSFWorkbook();
2)如要新建一名为"会员登录统计"的工作表,其语句为:
Sheet sheet = workbook.createSheet("会员登录统计");
3)创建行 (0表示创建第一行)
Row row = sheet.createRow(0);
4)创建列 (先创建行再创建列,就有了单元格,然后设置值) 0代表第一列
Cell cell = row.createCell(0);
cell11.setCellValue("今日人数");
5)将excel以流的方式导出 (out为FileOutputStream流)
workbook.write(out);
二、导出测试demo
代码如下
@Test
public void testWrite03() throws IOException {
// 创建新的Excel 工作簿
Workbook workbook = new HSSFWorkbook();
// 在Excel工作簿中建一工作表,其名为缺省值 Sheet0
//Sheet sheet = workbook.createSheet();
// 如要新建一名为"会员登录统计"的工作表,其语句为:
Sheet sheet = workbook.createSheet("会员登录统计");
// 创建行(row 1)
Row row1 = sheet.createRow(0);
// 创建单元格(col 1-1)
Cell cell11 = row1.createCell(0);
cell11.setCellValue("今日人数");
// 创建单元格(col 1-2)
Cell cell12 = row1.createCell(1);
cell12.setCellValue(666);
// 创建行(row 2)
Row row2 = sheet.createRow(1);
// 创建单元格(col 2-1)
Cell cell21 = row2.createCell(0);
cell21.setCellValue("统计时间");
//创建单元格(第三列)
Cell cell22 = row2.createCell(1);
String dateTime = new DateTime().toString("yyyy-MM-dd HH:mm:ss");
cell22.setCellValue(dateTime);
// 新建一输出文件流(注意:要先创建文件夹)
FileOutputStream out = new FileOutputStream("d:/test-write03.xls");
// 把相应的Excel 工作簿存盘
workbook.write(out);
// 操作结束,关闭文件
out.close();
System.out.println("文件生成成功");
}
三、导入代码
特别简单就只需要把excel文件流放入对象直接读取
Workbook workbook = new HSSFWorkbook(文件流);
然后操作ok
本站为非盈利网站,如果您喜欢这篇文章,欢迎支持我们继续运营!
本站主要用于日常笔记的记录和生活日志。本站不保证所有内容信息可靠!(大多数文章属于搬运!)如有版权问题,请联系我立即删除:“abcdsjx@126.com”。
QQ: 1164453243
邮箱: abcdsjx@126.com