Excel操作工具类ExcelHelper(源码下载)

博主分享针对项目所写的Asp.net中Excel操作类库。该类库可实现Excel基本操作,如数据导入、WorkSheet操作、行列与单元格操作等。开发中存在Excel进程结束、并发、组件访问权限配置等问题,部分方法有问题,欢迎反馈改进。
        这个类库主要是针对我目前的项目写的,比较乱,没时间整理,这段时间有很多网友问我Asp.net中Excel操作的问题,我这里把我的代码公布给大家,希望对大家有帮助。

        这个类库没有提供Excel样式设置的方法,建议使用模板,可以在模板中把格式控制好;ExcelHelper提供了实现Excel的基本操作的一些方法,包括:
        1、将二维数组和DataTable的数据导入Excel,可以按指定每页的记录行数来分页,还可以将数据相同的行合并
        2、WorkSheet的拷贝、隐藏方法,删除操作会出问题,不过对于WorkSheet这两个方法足够了
        3、Excel行、列的拷贝、删除、插入、合并操作
        4、Excel单元格的拷贝、删除、插入、合并操作,可以将单个文本值写入单元格,也可以将多个值及其对应Excel单元格的位置信息保存在Hashtable中写入单元格
        5、Excel文本框赋值操作,一些Excel控件都没有提供访问文本框的方法,要不我也不用写这个类库了
        6、将Excel文件导出多种格式
        
        在开发的过程中发现的几个问题:
        1、Exce进程结束问题,我目前使用的方法好像对专业版的OS没用,要用ntsd -c q -p pid命令才能结束掉
        2、并发问题,如果有两个人同时操作Excel组件的时候就会出错,不知大家有没有好的解决方法,好像使用进程池可以解决这个问题
        3、Excel组件访问权限的配置问题,见我以前写的随笔 关于在ASP.NET中以DCOM方式操作Excel的几个问题

        这个类库有几个方法还有点问题,大家使用过程中有什么问题和改进意见请跟我联系

        点这里下载ExcelHelper.rar
Excel2Entity Excel2Entity实现了Java POI对xls文件的读取功能的封装,实现了批量导入Excel中的数据时自动根据Excel中的数据行创建对应的Java POJO实体对象的功能。 该类库也实现了在创建实体对象时对字段类型进行校验,可以对Excel中的数据类型合法性进行校验,通过实现扩展接口,可以实现自定义校验规则以及自定义实体对象字段类型等更加复杂的校验规则和字段类型转换。 应用场景 该类库主要用应用场景是在一般管理系统中批量数据导入。 安装配置 Excel2Entity类库已经加入到Maven中央仓库,如果你的项目使用了Maven,则可以通过添加下面的Maven依赖配置项将该类库加入到您的项目. cc.aicode.java.e2e ExcelToEntity 1.0.0.3 依赖 Excel2Entity依赖于Apache POI类库。 使用说明 使用示例请参考src/test/java/cc/aicode/e2e/Excel2Entity/AppTest测试用例。 普通实体创建 ExcelHelper eh = ExcelHelper.readExcel("111.xls"); List entitys = null; try { entitys = eh.toEntitys(Demo.class); for (Demo d : entitys) { System.out.println(d.toString()); } } catch (ExcelParseException e) { System.out.println(e.getMessage()); } catch (ExcelContentInvalidException e) { System.out.println(e.getMessage()); } catch (ExcelRegexpValidFailedException e) { System.out.println(e.getMessage()); } 注册新的字段类型 注册的新的字段类型类必须实现ExcelType抽象类。 ExcelHelper.registerNewType(MyDataType.class); 实体对象 实体类必须标注@ExcelEntity注解, 同时需要填充的字段标注@ExcelProperty注解 @ExcelEntity public class Demo { @ExcelProperty(value="Name", rule=MyStringCheckRule.class) private String name; @ExcelProperty("Sex") private String sex; // 基于正则表达式的字段校验 @ExcelProperty(value="Age", regexp="^[1-4]{1}[0-9]{1}$", regexpErrorMessage="年龄必须在10-49岁之间") private int age; @ExcelProperty(value="Tel") private Long tel; @ExcelProperty("创建时间") private Timestamp createDate; @ExcelProperty(value="Name", required=true) private MyDataType name2; ... [get/set方法] } 自定义校验规则 自定义校验规则必须实现ExcelRule接口 public class MyStringCheckRule implements ExcelRule { // 字段检查 public void check(Object value, String columnNam
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值