用jxl解析excel内容
2024-10-18 03:01:44
需要导入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 | 北京大兴
最新文章
- [OFC]Mellanox发布首个200Gb/s硅光子设备
- jQuery-表单流程导航
- ASP.NET使用ConfigurationSection在Web.Config创建自定义配置节
- Jsp九大内置对象及其作用域
- Linux chmod命令详解
- Android SDK无法更新问题解决 ---- 还可解决无法上google的问题
- Spring MVC常用的注解类
- curl返回值写入内存的场景
- UVa 10341 - Solve It
- Linux知识积累(5) 关机shutdown和重启reboot
- SpringCloud的微服务网关:zuul(理论)
- 解决vue解析出现闪烁
- html_jQuery
- Docker,Docker Compose,Docker Swarm,Kubernetes之间的区别
- PHP之道 - php各方面的知识汇总
- lower_bound
- C#之SByte
- [转]System.DllNotFoundException: 无法加载 DLL“*.dll”: 内存位置访问无效。 (异常来自 HRESULT:0x800703E6)
- 格式化 SQL 来提高效率
- BZOJ4972 小Q的方格纸
热门文章
- Linux_shell脚本_遍历文件夹下所有文件
- DOM概述
- faster with MyISAM tables than with InnoDB or NDB tables
- Mac OS X系统下利用VirtualBox安装和配置Windows XP虚拟机
- Inside Flask - globals 全局变量(对象代理)
- mvc 数据验证金钱格式decimal格式验证
- RDIFramework.NET ━ .NET快速信息化系统开发框架 ━ 工作流程组件WinForm业务平台
- 移动端html页面布局
- linux的命令
- 向ES6看齐,用更好的JavaScript(二)