一个通用的excel读取工具

package homework.excelutils;

import java.io.File;
import java.io.IOException;
import java.util.List;
import jxl.Sheet;
import jxl.Workbook;
import jxl.read.biff.BiffException;

public class ExcelUtils {
	public static <T> List<T> read(File file, CallBack<T> call) {
		Workbook workbook = null;
		try {
			workbook = Workbook.getWorkbook(file);
			Sheet sheet = workbook.getSheet(0);
			return call.getDatas(sheet);
		} catch (BiffException e) {
			e.printStackTrace();
		} catch (IndexOutOfBoundsException e) {
			e.printStackTrace();
		} catch (IOException e) {
			e.printStackTrace();
		}
		return null;
	}

	public interface CallBack<T> {
		public List<T> getDatas(Sheet sheet);
	}
}

//举个栗子

public void writeproduct() {
		List<Product> list = ExcelUtils.read(new File("商品表.xls"), new CallBack<Product>() {
			@Override
			public List<Product> getDatas(Sheet sheet)  {
				List<Product> lp = new ArrayList<>();
				int rows = sheet.getRows();
				Product pro = null;
				SimpleDateFormat sdf = new SimpleDateFormat("MM/dd/yyyy");
				for (int i = 1; i < rows; i++) {
					String id = sheet.getCell(0,i).getContents();
					String name = sheet.getCell(1,i).getContents();
					String price = sheet.getCell(2,i).getContents();
					String offset = sheet.getCell(3,i).getContents();
					Date time = null;
					try {
						time = sdf.parse(sheet.getCell(4,i).getContents());
					} catch (ParseException e) {
						e.printStackTrace();
					}
					String counts = sheet.getCell(5,i).getContents();
					String cid = sheet.getCell(6,i).getContents();
					pro = new Product(Integer.parseInt(id), name, Double.parseDouble(price),Double.parseDouble(offset), time, Integer.parseInt(counts),Integer.parseInt(cid));
					lp.add(pro);
				}
				return lp;
			}
		});
		ProductDAO p = new ProductDAO();
		for (Product product : list) {
			p.insert(product);
		}
	}




【更新】:2015.10.30 1. 更新:很多用户反馈不需要下拉选择,本版本特意去掉后供大家下载使用。 2. 改进:对文件结构做了大调整,数据库目录更直观打开文件夹即可看到,JS/css/img文件原来放inc文件夹。 3. 改进: 你可以同时修改文件夹名称和数据库文件名,可实现路径难破解而达到防下载目的。 4. 对使用说明等做了大量修改。比如查询条件设置建议等。 产品优势】: 这是个极为简单却非常通用、非常方便的成绩查询系统,通用于几乎所有Excel单二维数据表查询。只需修改 查询条件和顶部、底部文字(非常简单),即可用于几乎所有工资等查询,成绩查询,物业查询,收电费查询,录取查询,证书查询等场景哦。 1. 非常通用。无论你Excel/Wps二维表几列,列标题各是什么,直接支持。其他格式导出为csv或excel后同样支持。查询结果几乎都由你Excel二维表控制,平时只需维护好你的Excel表,而操作Excel,几乎每台电脑都有软件可以打开编辑,几乎谁都会操作。 2. 使用简单。只需修改查询条件和标题,然后把你平时输入的excel二维表进行:复制,粘贴,更名,上传,特别方便,发布一次成绩查询,半分钟内可以解决。修改查询查询条件等,记事本打开编辑几个字即可,自定义是否使用验证码。 3. 市场广泛。可以广泛用于一次性出来的改动很少的成绩查询,录取查询,证书查询系统(每个学校,教育机构,事业单位考试等都可以用到),工资查询系统(每个企业,学校,所有单位都可能用到),水电费查询系统等(小区,物业公司,大学寝室等),录取,证书查询系统。 4. 使用灵活:支持多次查询,比如工资查询往往多月查询,那么你只需一个月放一个数据库,下拉的查询选项自动获取(选项即文件名);且每次查询除了设置的查询条件列的标题得一致外,其他的都是自定义可以不一样(任意列数,任意列标题,任意行数);如果查询条件不一致,将代码文件复制一份后用不同文件夹命名,然后修改查询条件即可使用。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值