Apache POI是Apache软件基金会的开源项目,POI提供API给Java程序对Microsoft Office格式档案读和写的功能。 .NET的开发人员则可以利用NPOI (POI for .NET) 来存取 Microsoft Office文档的功能。
需要的mavan依赖:
org.apache.poi
poi
3.9
org.apache.poi
poi-ooxml
3.9
org.apache.poi
poi-ooxml-schemas
3.9
ExcelUtil.java
package com.citywy.controller;
import java.io.File;
import java.io.FileInputStream;
import java.io.IOException;
import java.io.InputStream;
import java.util.*;
import org.apache.poi.hssf.usermodel.HSSFCell;
import org.apache.poi.hssf.usermodel.HSSFWorkbook;
import org.apache.poi.ss.usermodel.Cell;
import org.apache.poi.ss.usermodel.Row;
import org.apache.poi.ss.usermodel.Sheet;
import org.apache.poi.ss.usermodel.Workbook;
import org.apache.poi.xssf.usermodel.XSSFWorkbook;
import org.apache.poi.openxml4j.exceptions.InvalidFormatException;
import org.apache.poi.ss.usermodel.WorkbookFactory;
import org.apache.poi.ss.util.CellRangeAddress;
public class ExcelUtil {
public static void main(String[] args){
ExcelUtil excelUtil = new ExcelUtil();
//读取excel数据
ArrayList
附加个人需求:
/**
* str最后一行读不到,手动最后加一行废数据
* 附加:将读取的内容合并为
* 【高危职业】什么是高危职业_十大高危职业_xxx_xxx_xxx 最多8条
* 所属栏目读取最后一个/后的值 职业病防治
*/
public static void main(String[] args){
ExcelUtil excelUtil = new ExcelUtil();
//读取excel数据
ArrayList> result = excelUtil.readExcelToObj("d:\\xreadexcel\\a.xlsx");
Map result1 = new HashMap();
String str="";
for(Map map:result){
String id = map.get("id");
String value = map.get("base");
String menu = map.get("siteName");
if(menu.contains("/")){
menu=menu.substring(menu.lastIndexOf("/")+1);
}
if(result1.containsKey(id)){
if(getCount(str, "_")<7){
str=str+"_"+value;
}
}else{
if(!str.equals("")){
System.out.println(str); //【高危职业】什么是高危职业_十大高危职业_..._..._...最多8条
}
//System.out.println(id); //高危职业
//System.out.println(menu.trim());//职业病防治
str="【"+id+"】"+value;
result1.put(id, value);
}
}
}
/**
* 获取字符串指定字符个数
* @param str
* @param tag
* @return
*/
public static int getCount(String str, String tag) {
int index = 0;
int count = 0;
while ((index = str.indexOf(tag)) != -1 ) {
str = str.substring(index + tag.length());
count++;
}
return count;
}
转载:https://www.cnblogs.com/jiuchongxiao/p/5659884.html