文章目录
1 Java操作Excel
1.1 概念
jxl:只能对Excel进行操作,属于比较老的框架。
POI:是apache的项目,可对ms的word,Excel,PPT进行操作,包括office2003和2007。对两种版本的处理都比较好。具体操作请看官方的文档
1.2 JXL与POI优缺点
JXL优点(韩国人开发):
- Jxl对中文支持非常好,操作简单,方法看名知意。
- Jxl是纯javaAPI,在跨平台上表现的非常完美,代码可以再windows或者Linux上运行而无需重新编写
- 支持Excel 95-2000的所有版本(网上说目前可以支持Excel2007了,还没有尝试过)
- 生成Excel 2000标准格式
- 支持字体、数字、日期操作
- 能够修饰单元格属性
- 支持图像和图表,但是这套API对图形和图表的支持很有限,而且仅仅识别PNG格式。
缺点:效率低,图片支持不完善,对格式的支持不如POI强大
POI优点:
- 效率高
- 支持公式,宏,一些企业应用上会非常实用
- 能够修饰单元格属性
- 支持字体、数字、日期操作
- 支持03和07的版本
缺点:不成熟,代码不能跨平台,兼容性不是那么好
1.3 引入poi需要的jar包
<!-- poi支持的jar包 -->
<dependency>
<groupId>org.apache.poi</groupId>
<artifactId>poi</artifactId>
<version>3.11</version>
</dependency>
<dependency>
<groupId>org.apache.poi</groupId>
<artifactId>poi-ooxml</artifactId>
<version>3.11</version>
</dependency>
1.4 创建Excel(完成99乘法表)
//导入
@Test
public void readExcel()throws Exception{
//读取文件
FileInputStream fis = new FileInputStream(new File("empread.xlsx"));
//得到工作薄
Workbook wb = new XSSFWorkbook(fis);
//2.拿到第个sheet表
Sheet sheet = wb.getSheetAt(0);
//3.拿到wb中的行(不要拿头部)
int lastRowNum = sheet.getLastRowNum();
for (int i = 2; i <= lastRowNum; i++) {
Row row = sheet.getRow(i);
//4.拿到每一列(格子)
short lastCellNum = row.getLastCellNum();
for (int j = 0; j < lastCellNum; j++) {
Cell cell = row.getCell(j);
System.out.print(cell.getStringCellValue()+" ");
}
System.out.println();
}
}
1.5 java读取Excel
/**
* 读取我们使用相应的方案
* @throws Exception
*/
@Test
public void readExcel() throws Exception{
File file = new File("employee-3.xlsx")