论坛首页 Java企业应用论坛

发一个通用从数据库导出excel、excel导入数据库组件

浏览 24148 次
精华帖 (0) :: 良好帖 (4) :: 新手帖 (18) :: 隐藏帖 (0)
作者 正文
   发表时间:2010-06-02  
注解方式挺好,以前做过一个使用excel模板导入导出的,将字段映射校验等信息存在excel的隐藏sheet中
0 请登录后投票
   发表时间:2010-06-02  
JXL,能不能像jxls一样吧,数据源传入Excel,而Excel中用${po.id}这样取值?
qiren83 写道
JXL不是省事吗?

又学看其它的API

JPA查出来 JXL把结果生成出来 多灵活 又方便入手

0 请登录后投票
   发表时间:2010-06-02  
以前用jxl做一个通用的,不过没有用@注解方式,这个倒是不错的想法,可以参考一下。
0 请登录后投票
   发表时间:2010-06-02  
其实JXLS不错,就是可能会有些小bug
0 请登录后投票
   发表时间:2010-06-02  
ireport
0 请登录后投票
   发表时间:2010-06-02  
请问楼主这个工具是否支持表查询出pojo对象有一对多或一对一关系的转换?
0 请登录后投票
   发表时间:2010-06-02  
以前也做过类似的excel导入导出,但是是用xml配置的。lz的想法很好,但是有些地方还是有点看不懂。。。
eya 写道

	public Collection<T> importExcel(File file ,String...  pattern) {


不知道为什么pattern传入的是可变参数类型,后文应该也只是用到pattern[0]而已。
另外ImportExcel为什么要每次导入都去获取目标目标类的所有的字段列表呢,应该只要获取一次保存起来就行了吧。
eya 写道

			/**
			 * 类反射得到调用方法
			 */
			// 得到目标目标类的所有的字段列表
			Field filed[] = clazz.getDeclaredFields();
			// 将所有标有Annotation的字段,也就是允许导入数据的字段,放入到一个map中
			Map fieldmap = new HashMap();
			// 循环读取所有字段
			for (int i = 0; i < filed.length; i++) {
				Field f = filed[i];
				// 得到单个字段上的Annotation
				ExcelAnnotation exa = f.getAnnotation(ExcelAnnotation.class);
				// 如果标识了Annotationd的话
				if (exa != null) {
					// 构造设置了Annotation的字段的Setter方法
					String fieldname = f.getName();
					String setMethodName = "set"
							+ fieldname.substring(0, 1).toUpperCase()
							+ fieldname.substring(1);
					// 构造调用的method,
					Method setMethod = clazz.getMethod(setMethodName,
							new Class[] { f.getType() });
					// 将这个method以Annotaion的名字为key来存入。
					fieldmap.put(exa.exportName(), setMethod);
				}
			}




另外导出的时候会不会少导一条数据啊,我没有亲自运行过,但是看代码好像会把第一条数据少导出来,有错请指正。呵呵
0 请登录后投票
   发表时间:2010-06-02  
派不上用场。。。。
0 请登录后投票
   发表时间:2010-06-02  
可以啊 支持
0 请登录后投票
   发表时间:2010-06-02  
不错,支持
0 请登录后投票
论坛首页 Java企业应用版

跳转论坛:
Global site tag (gtag.js) - Google Analytics