在万物皆对象的java中如何操作一个excel文件?无非就是将excel看做一个可操作的对象(java真是流氓,看谁都是他对象╭(╯^╰)╮)
该对象有如下基础属性:
1.sheet,也就是我们在表格中的一页
2.row,表格中一横排,行表示
3.cell,表格中的列
常见的excel文件有两种:xls,xlsx。从某度copy过来的:
1、文件格式不同。xls 是一个特有的二进制格式,其核心结构是复合文档类型的结构,bai而 xlsx 的核心结构是 XML 类型的结构,采用的是基于 XML 的压缩方式,使其占用的空间更小。xlsx 中最后一个 x 的意义就在于此。
2、版本不同。xls是excel2003及以前版本生成的文件格式,而xlsx是excel2007及以后版本生成的文件格式。
3、兼容性不同。xlsx格式是向下兼容的,可兼容xls格式
说明一下:XSSFWorkbook 是创建xlsx,用于存储大量数据。HSSFWorkbook 创建xls文件,存储量少。其他操作都是一样的
如果要用代码导出一个excel文件需要怎么做?
导包导包导包。。。。一定别忘了org.apache.poi的包
java"> //创建excel的文件对象,包含一个 sheet(表),有标题,有cell(单元格列),有row(行)
XSSFWorkbook workbook = new XSSFWorkbook();
//创建一个表
XSSFSheet sheet = workbook.createSheet("user");
//创建标题栏,第一行也就是表头
XSSFRow titleRow = sheet.createRow(0);
//定义标题栏,用数组和list都阔以,根据自己实际需要
List<String> titleList = new ArrayList<String>();
titleList.add("姓名");
titleList.add("性别");
titleList.add("年龄");
//将标题栏数据写入
for(int i =0;i<titleList.size();i++) {
XSSFCell cell = titleRow.createCell(i);
cell.setCellValue(titleList.get(i));
}
//根据自己数据量大小,将数据写入到每一行,1代表除标题之外的第一行
XSSFRow rowInfo = sheet.createRow(1);
rowInfo.createCell(0).setCellValue(user.getUsername());
rowInfo.createCell(1).setCellValue(user.getSex());
rowInfo.createCell(2).setCellValue(user.getAge());
//保存文件
workbook.write(new FileOutputStream("E:\\myfile/test.xls"));
1.创建excel的对象
2.创建sheet
3.指定该sheet中的首行,也就是你的表头
4.根据实际情况录入自己的数据
5.指定导出即可
基础操作就是这样了,如果是springboot,请在pom文件中增加对于依赖,具体版本根据自己需要而定
<dependency>
<groupId>org.apache.poi</groupId>
<artifactId>poi</artifactId>
<version>3.4</version>
</dependency>
<dependency>
<groupId>org.apache.poi</groupId>
<artifactId>poi-ooxml</artifactId>
<version>3.4</version>
</dependency>
<dependency>
<groupId>org.apache.poi</groupId>
<artifactId>poi-ooxml-schemas</artifactId>
<version>3.4</version>
</dependency>