javaIO流使用POI工具包解析excel表
来源:互联网 发布:曼哈顿计划 知乎 编辑:程序博客网 时间:2024/06/02 11:29
解析excel文档LZ用的是poi-3.10-FINAL.jar这个工具包
以上是LZ用的excel表的格式
<span style="font-size:14px;">public class Student {private String name;private String address;private Date birthday;private String classes;private int gender;private String mobileNumber;private String nationId;private String schools;@Overridepublic String toString() {return "Student [name=" + name + ", address=" + address+ ", birthday=" + birthday + ", classes=" + classes+ ", gender=" + gender + ", mobileNumber=" + mobileNumber+ ", nationId=" + nationId + ", schools=" + schools + "]";} //get set 省略....</span>以上是用户类,这里用的是一个student类
<span style="font-size:14px;">import java.io.File;import java.io.FileInputStream;import java.util.ArrayList;import java.util.HashMap;import java.util.List;import java.util.Map;import org.apache.poi.hssf.usermodel.HSSFCell;import org.apache.poi.hssf.usermodel.HSSFRow;import org.apache.poi.hssf.usermodel.HSSFSheet;import org.apache.poi.hssf.usermodel.HSSFWorkbook;import org.apache.poi.poifs.filesystem.POIFSFileSystem;public class ExcelClass{public static void main(String[] args) throws Exception {List<Student> list = new ArrayList<Student>();File file1 = new File("E:"+File.separator+"1.xls");FileInputStream fis = new FileInputStream(file1);POIFSFileSystem fs = new POIFSFileSystem(fis);HSSFWorkbook hwb = new HSSFWorkbook(fs);HSSFSheet sheet = hwb.getSheet("学生");if(sheet==null){System.out.println("没有学生表");return;}System.out.println(sheet.getFirstRowNum());//行和列都是从0开始计数 此处应该为1HSSFRow titleRow = sheet.getRow(sheet.getFirstRowNum());//获取标题行Map<String,Integer> map = new HashMap<String,Integer>();//此处将标题与列数放到map集合中,保证以后excel列位置即使改变也能同样解析System.out.println(titleRow.getLastCellNum());//9 (列数的最后一列+1) for(int i=titleRow.getFirstCellNum();i<titleRow.getLastCellNum();i++){map.put(titleRow.getCell(i).getStringCellValue(), i);//key是标题名,value是列数}System.out.println(map);/** * 取标题下面的数据,并且将它们封装到student对象中 */for(int i=sheet.getFirstRowNum()+1;i<=sheet.getLastRowNum();i++){HSSFRow dataRow = sheet.getRow(i);//获得遍历到的那一行Student stu = new Student();//遍历一行中的单元格for(String item:map.keySet()){HSSFCell dataCell = dataRow.getCell(map.get(item));//根据列值确定一行中的单元格/** * 从一行中循环取出对应标题下的值 */if("用户姓名".equals(item)){stu.setName(dataCell.getStringCellValue());}else if("用户地址".equals(item)){stu.setAddress(dataCell.getStringCellValue());}else if("用户生日".equals(item)){stu.setBirthday(dataCell.getDateCellValue());}else if("用户班级".equals(item)){stu.setClasses(new Integer((int)dataCell.getNumericCellValue()).toString());}else if("性别".equals(item)){stu.setGender((int)dataCell.getNumericCellValue());}else if("手机号码".equals(item)){stu.setMobileNumber(dataCell.getStringCellValue());}else if("身份证号码".equals(item)){stu.setNationId(dataCell.getStringCellValue());}else if("用户学校".equals(item)){stu.setSchools(dataCell.getStringCellValue());}}list.add(stu);}System.out.println(list);}}</span>以上是解析excel的解析类
结果:
[Student [name=abcde, address=abcvfg, birthday=Wed Oct 02 00:00:00 CST 1991, classes=5, gender=1, mobileNumber=13145678911, nationId=12345678912345301, schools=zxwe111],
Student [name=abcde1, address=abcvfg1, birthday=Sat Oct 03 00:00:00 CST 1992, classes=6, gender=2, mobileNumber=13145678912, nationId=12345678912345302, schools=zxwe112],
Student [name=abcde2, address=abcvfg2, birthday=Mon Oct 04 00:00:00 CST 1993, classes=7, gender=1, mobileNumber=13145678913, nationId=12345678912345303, schools=zxwe113],
Student [name=abcde3, address=abcvfg3, birthday=Wed Oct 05 00:00:00 CST 1994, classes=8, gender=2, mobileNumber=13145678914, nationId=12345678912345304, schools=zxwe114],
Student [name=abcde4, address=abcvfg4, birthday=Fri Oct 06 00:00:00 CST 1995, classes=9, gender=1, mobileNumber=13145678915, nationId=12345678912345305, schools=zxwe115]]
注意:1,使用getLastCellNum方法获得的值是最后一列的索引值(这里excel表最后一列的索引值是从左到右从0开始数一直到8)
加1
2,请看下用户班级和手机号码,这里的用户班级在poi解析时是当数字解析的,而手机号码是当字符串解析的,如果你想让它
当字符串解析,把excel格子中的数字开头加’ 即可!
- javaIO流使用POI工具包解析excel表
- 使用poi解析Excel
- 使用poi解析Excel
- 使用poi解析Excel
- 使用poi解析Excel
- 使用poi解析Excel
- 使用poi解析Excel
- 使用POI解析Excel
- 使用POI解析excel getlastnum()
- 简单使用poi解析excel
- Java使用poi解析Excel
- 使用poi解析excel表格
- java使用poi实现excel解析
- Excel的解析--使用apache POI组件
- java使用poi解析Excel文件
- 使用POI解析excel文件方法总结
- 使用POI解析Excel,2007和2003
- java EXCEL文件读写工具包POI
- android图片等比例缩放 填充屏幕
- quick-cocos2d-x源文件编译及加密详解 转
- Zigbee开源协议栈
- jquery 权限控制菜单
- poj3648 2-sat <输出任意一组解>
- javaIO流使用POI工具包解析excel表
- Android系统性能调优工具介绍
- cocos2d-x-3.1.1 eclipse中运行例程
- 【枚举一】Java 枚举7常见种用法
- 研究生期间怎么学习
- cocos2d-x创建精灵
- 普通游戏显卡和专业图形显卡的区别
- MySQL慢查询的两种分析方案 slow sql
- ROW_NUMBER() OVER函数的基本用法