POI技术

Posted lichangyun

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了POI技术相关的知识,希望对你有一定的参考价值。

1.基本概念:POI:简单的说就是对office的文档进行读和写的工具,POI中的组件(HSSFXSS)可以读写excel,其中HSSF和XSS还是有区别的。HSSF:它是用来操作97格式的excel,扩展名为.xls,纯二进制,最大行数65535。而XSS:它是用来操作2007格式的excel,扩展名为.xlsx,压缩的xml ,最大无限行.开发中优先选.xls

2.基本案列:点击上传按钮,实现excel数据的导入(给予maven开发)

2.1:引入坐标

2.2:创建对象(获取工作薄),

打开工作表

获取行(读数据)

获取格(读数据)

实体类的封装

在运用相应的技术保存数据 

 

3.示例代码:

//注入service

@Autowired

private AreaService areaService;

//导入excel数据

@Action("area_importData")

public String importData(){

//目标:读excel,入库

List<Area> areaList=new ArrayList<>();

 

try {

//技巧:平时怎么读,代码怎么写。

//1.打开工作簿(97格式)

HSSFWorkbook workbook=new HSSFWorkbook(new FileInputStream(upload));

//2.从工作簿中打开工作表

//workbook.getSheet("Sheet1");//根据名字读取工作表

HSSFSheet sheet = workbook.getSheetAt(0);//g根据索引来读取工作表0-based physical & logical

//3.一行一行读

for (Row row : sheet) {

//第一行一般是标题,要跳过

if(row.getRowNum()==0){

continue;

}

 

//一格一格读数据

String id = row.getCell(0).getStringCellValue();

String province = row.getCell(1).getStringCellValue();

String city = row.getCell(2).getStringCellValue();

String district = row.getCell(3).getStringCellValue();

String postcode = row.getCell(4).getStringCellValue();

 

//将值封装到对象

Area area=new Area();

area.setId(id);

area.setProvince(province);

area.setCity(city);

area.setDistrict(district);

area.setPostcode(postcode);

 

//将对象填入集合

areaList.add(area);

}

 

//批量将区域保存到数据库

areaService.saveArea(areaList);

 

} catch (Exception e) {

e.printStackTrace();

}

 

 

return NONE;

}

//坐标引入

<poi.version>3.17</poi.version>

<!-- Apache POI -->

<dependency>

<groupId>org.apache.poi</groupId>

<artifactId>poi</artifactId>

<version>${poi.version}</version>

</dependency>

<dependency>

<groupId>org.apache.poi</groupId>

<artifactId>poi-ooxml</artifactId>

<version>${poi.version}</version>

</dependency>

 

//注入service

@Autowired

private AreaService areaService;

 

//导入excel数据

@Action("area_importData")

public String importData(){

//目标:读excel,入库

List<Area> areaList=new ArrayList<>();

 

try {

//技巧:平时怎么读,代码怎么写。

//1.打开工作簿(97格式)

HSSFWorkbook workbook=new HSSFWorkbook(new FileInputStream(upload));

//2.从工作簿中打开工作表

//workbook.getSheet("Sheet1");//根据名字读取工作表

HSSFSheet sheet = workbook.getSheetAt(0);//g根据索引来读取工作表0-based physical & logical

//3.一行一行读

for (Row row : sheet) {

//第一行一般是标题,要跳过

if(row.getRowNum()==0){

continue;

}

 

//一格一格读数据

String id = row.getCell(0).getStringCellValue();

String province = row.getCell(1).getStringCellValue();

String city = row.getCell(2).getStringCellValue();

String district = row.getCell(3).getStringCellValue();

String postcode = row.getCell(4).getStringCellValue();

 

//将值封装到对象

Area area=new Area();

area.setId(id);

area.setProvince(province);

area.setCity(city);

area.setDistrict(district);

area.setPostcode(postcode);

 

//将对象填入集合

areaList.add(area);

}

 

//批量将区域保存到数据库

areaService.saveArea(areaList);

 

} catch (Exception e) {

e.printStackTrace();

}

 

 

return NONE;

}

以上是关于POI技术的主要内容,如果未能解决你的问题,请参考以下文章

java的poi技术读取Excel数据

JAVA秒会技术之POI报表背景色POI报表背景色图谱

POI技术

apache POI技术的使用

POI技术

java利用poi技术导入批量excel数据,并且分段存入数据库怎么解决