需要导入jxl.jar

下方表格为excel中内容:

序号 姓名 性别 生日 地址
1 测试1 1990-1-1 北京朝阳区
2 测试2 1998-2-2 北京海淀
3 测试3 1999-3-3 北京大兴

代码示例:

package com;

import java.io.File;
import java.io.IOException; import jxl.Sheet;
import jxl.Workbook;
import jxl.WorkbookSettings;
import jxl.read.biff.BiffException; public class ParseExcel { /**
* 解析excel
* @param filePath 路径
*/
public void parseExcel(String filePath){
WorkbookSettings workbookSettings = new WorkbookSettings();
workbookSettings.setEncoding("gbk");//防止乱码情况
try {
Workbook workbook = Workbook.getWorkbook(new File(filePath), workbookSettings);
Sheet[] sheets = workbook.getSheets();//获取excel中的要解析的sheet
if(sheets==null||sheets.length==0){
return;
}
for(int sheetIndex=0;sheetIndex<sheets.length;sheetIndex++){
Sheet sheet = sheets[sheetIndex];
String sheetName = sheet.getName();
if("Sheet1".equals(sheetName)){
int rows = sheet.getRows();
int columns = sheet.getColumns();
for(int rowIndex=0;rowIndex<rows;rowIndex++){//遍历行
String number = "";
String name = "";
String sex = "";
String birth = "";
String address = "";
for(int columnIndex=0;columnIndex<columns;columnIndex++){//遍历列
String content = sheet.getCell(columnIndex, rowIndex).getContents().trim();//动态获取cell中的内容
if(columnIndex==0){
number = content;
}else if(columnIndex==1){
name = content;
}else if(columnIndex==2){
sex = content;
}else if(columnIndex==3){
birth = content;
}else if(columnIndex==4){
address = content;
}
} System.out.println(number+" | "+name+" | "+sex+" | "+birth+" | "+address);//输出解析的内容 if(rowIndex==0){//第一行是标题行,从下一行解析
continue;
} if("".equals(number)&&"".equals(name)&&"".equals(sex)
&&"".equals(birth)&&"".equals(address)){//遇到都是空行停止遍历
break;
} //TODO 保存一类的业务逻辑 } }else if("Sheet2".equals(sheetName)){
//TODO Sheet2表单业务
}else if("Sheet3".equals(sheetName)){
//TODO Sheet3表单业务
}
} } catch (BiffException e) {
e.printStackTrace();
} catch (IOException e) {
e.printStackTrace();
}
} public static void main(String[] args) {
String filePath = "D:\\test.xls";
ParseExcel parseExcel = new ParseExcel();
parseExcel.parseExcel(filePath);
}
}

测试后输出内容:

序号 | 姓名 | 性别 | 生日 | 地址
1 | 测试1 | 男 | 90-1-1 | 北京朝阳区
2 | 测试2 | 女 | 98-2-2 | 北京海淀
3 | 测试3 | 男 | 99-3-3 | 北京大兴

最新文章

  1. [OFC]Mellanox发布首个200Gb/s硅光子设备
  2. jQuery-表单流程导航
  3. ASP.NET使用ConfigurationSection在Web.Config创建自定义配置节
  4. Jsp九大内置对象及其作用域
  5. Linux chmod命令详解
  6. Android SDK无法更新问题解决 ---- 还可解决无法上google的问题
  7. Spring MVC常用的注解类
  8. curl返回值写入内存的场景
  9. UVa 10341 - Solve It
  10. Linux知识积累(5) 关机shutdown和重启reboot
  11. SpringCloud的微服务网关:zuul(理论)
  12. 解决vue解析出现闪烁
  13. html_jQuery
  14. Docker,Docker Compose,Docker Swarm,Kubernetes之间的区别
  15. PHP之道 - php各方面的知识汇总
  16. lower_bound
  17. C#之SByte
  18. [转]System.DllNotFoundException: 无法加载 DLL“*.dll”: 内存位置访问无效。 (异常来自 HRESULT:0x800703E6)
  19. 格式化 SQL 来提高效率
  20. BZOJ4972 小Q的方格纸

热门文章

  1. Linux_shell脚本_遍历文件夹下所有文件
  2. DOM概述
  3. faster with MyISAM tables than with InnoDB or NDB tables
  4. Mac OS X系统下利用VirtualBox安装和配置Windows XP虚拟机
  5. Inside Flask - globals 全局变量(对象代理)
  6. mvc 数据验证金钱格式decimal格式验证
  7. RDIFramework.NET ━ .NET快速信息化系统开发框架 ━ 工作流程组件WinForm业务平台
  8. 移动端html页面布局
  9. linux的命令
  10. 向ES6看齐,用更好的JavaScript(二)