码迷,mamicode.com
首页 > 其他好文 > 详细

POI技术

时间:2018-02-01 13:04:02      阅读:886      评论:0      收藏:0      [点我收藏+]

标签:ati   get   poi   fileinput   入库   orm   line   ali   lis   

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技术

标签:ati   get   poi   fileinput   入库   orm   line   ali   lis   

原文地址:https://www.cnblogs.com/lichangyun/p/8398175.html

(0)
(3)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!