使用Jxl读取Excel文件内容

本文介绍了一个使用Java JXL库解析Excel文件的具体示例,包括如何读取单元格内容并验证数据的有效性和格式正确性。
package com.xhgjky.ssh.utils;

import java.io.File;
import java.util.ArrayList;
import java.util.List;

import jxl.Cell;
import jxl.Sheet;
import jxl.Workbook;

public class JxlReadExcel {
	/**
	 * JXL解析Excel
	 * @return 
	 * */
	public static List<String> main(String path) {
		// TODO Auto-generated method stub
		List<String> cx = new ArrayList<String>();
		List<String> flag = new ArrayList<String>();
		String s = null;
		int h;
		int l;
		try {
			//创建workbook
//			Workbook workbook = Workbook.getWorkbook(new File("C:/Users/Administrator/Desktop/poi_test.xls"));
			Workbook workbook = Workbook.getWorkbook(new File(path));
			//获取工作表sheet
			Sheet sheet = workbook.getSheet(0);
			//获取数据
			boolean found = false; 
			for (int i = 1; i < sheet.getRows() && !found; i++) {
				for (int j = 0; j < sheet.getColumns(); j++) {
					Cell cell = sheet.getCell(j, i);
					//判断必填项是否填了,填的格式是否正确
					if(i > 1){
						h = i + 1;
						l = j + 1;
						if(j == 0){
							if(cell.getContents().trim() == ""||"".equals(cell.getContents().trim())){
								s = "第"+h+"行、第"+l+"列不能为空,请确认后重新上传!";
								found = true;
								break;
							}else {
								boolean f = (cell.getContents().trim()).matches("^[A-Za-z0-9]+$");
								if(f == false){
									s = "第"+h+"行、第"+l+"列格式错误,请确认后重新上传!";
									found = true;
									break;
								}
							}
						}else if(j == 1){
							if(cell.getContents().trim() == ""||"".equals(cell.getContents().trim())){
								s = "第"+h+"行、第"+l+"列不能为空,请确认后重新上传!";
								found = true;  
								break;
							}
						}else if(j == 2){
							if(cell.getContents().trim() == ""||"".equals(cell.getContents().trim())){
								s = "第"+h+"行、第"+l+"列不能为空,请确认后重新上传!";
								found = true;  
								break;
							}else {
								boolean f = (cell.getContents().trim()).matches("^[A-Za-z0-9]+$");
								if(f == false){
									s = "第"+h+"行、第"+l+"列格式错误,请确认后重新上传!";
									found = true;  
									break;
								}
							}
						}else if(j == 3){
							if(cell.getContents().trim() == ""||"".equals(cell.getContents().trim())){
								s = "第"+h+"行、第"+l+"列不能为空,请确认后重新上传!";
								found = true;  
								break;
							}else {
								if(!("变电施工").equals(cell.getContents().trim())&&!("线路施工").equals(cell.getContents().trim())){
									s = "第"+h+"行、第"+l+"列格式错误,请确认后重新上传!";
									found = true;  
									break;
								}
							}
						}
						else if(j == 4){
							if(cell.getContents().trim() == ""||"".equals(cell.getContents().trim())){
								s = "第"+h+"行、第"+l+"列不能为空,请确认后重新上传!";
								found = true;  
								break;
							}
						}
						else if(j == 5){
							if(cell.getContents().trim() == ""||"".equals(cell.getContents().trim())){
								s = "第"+h+"行、第"+l+"列不能为空,请确认后重新上传!";
								found = true;  
								break;
							}
						}else if(j == 6){
							if(cell.getContents().trim() == ""||"".equals(cell.getContents().trim())){
								s = "第"+h+"行、第"+l+"列不能为空,请确认后重新上传!";
								found = true;  
								break;
							}
						}else if(j == 7){
							if(cell.getContents().trim() == ""||"".equals(cell.getContents().trim())){
								s = "第"+h+"行、第"+l+"列不能为空,请确认后重新上传!";
								found = true;  
								break;
							}else {
								if(!(cell.getContents().trim()).matches("\\d*")){
									s = "第"+h+"行、第"+l+"列格式错误,请确认后重新上传!";
									found = true;  
									break;
								}
							}
						}
					}
//					System.out.print(cell.getContents()+"  ");
					cx.add(cell.getContents());
				}
//				System.out.println();
			}
			workbook.close();
		} catch (Exception e) {
			// TODO Auto-generated catch block
			e.printStackTrace();
		}
		if(s == null){
			return cx;
		}else {
			flag.add("err");
			flag.add(s);
			return flag;
		}
	}

}


转载于:https://my.oschina.net/yongqingfan/blog/535215

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值