文档章节

JTabel中有JCheckBox如何导出Excel

drongHua
 drongHua
发布于 2014/06/03 17:17
字数 316
阅读 19
收藏 0

今天,我想把“登陆管理"中的人员清单,写程序用Excel导出来,原本想,这很简单啊,不就是一个Jtabel中的内容吗!结果还是有些小问题让我困扰,后来,才发现是数据类型转换的问题造成的


"访客权限","管理员权限",这4个栏位都是用JCheckBox,在AbstractTableModel中有一个方法返回的是Boolean.class,在Jtabel表格中就是
true与false,true就是会打勾

        public Class getColumnClass(int columnIndex) {  

                  // 返回每一列的数据类型  

           return typeArray.get(columnIndex);

       }



经过排查,是以下的程序导出Excel时有问题

             for(int i =0;i<b ;i++){

   

 for(int j=1;j<=a;j++){

 

     String str = null;    

     str = (String) table.getValueAt(j-1, i);  

     jxl.write.Label labelN = new jxl.write.Label(i, j, str);

     try {

      ws.addCell(labelN);

     } catch (RowsExceededException e) {

      e.printStackTrace();

     } catch (WriteException e) {

      e.printStackTrace();

     }

 }

   } 

   //写入工作表

   wwb.write();


修改之后:

 for(int j=1;j<=a;j++){

 

     String str = null;

     if (i== 5 || i== 6 || i== 7 || i== 8){

  //因为是Boolean类型,所以我先转为object,再转为string
                                 //这样,程序就可以正常的导出Excel了 
 

     Object stry =table.getValueAt(j-1, i);     

                               //强转为string

     str = stry.toString();

     if (str.equals("false")){         

        str = "";

     }

     }else{

        str = (String) table.getValueAt(j-1, i);

     }

 

     jxl.write.Label labelN = new jxl.write.Label(i, j, str);

     try {

      ws.addCell(labelN);

     } catch (RowsExceededException e) {

      e.printStackTrace();

     } catch (WriteException e) {

      e.printStackTrace();

     }

 }

   } 

   //写入工作表

    wwb.write();


© 著作权归作者所有

共有 人打赏支持
drongHua
粉丝 8
博文 8
码字总数 3761
作品 0
抚州
程序员
Java学习笔记之Swing(三)

Java学习笔记之Swing(三) Swing中的常用控件 你将学到: 了解如何创建文本框和文本框的实际应用; 了解如何创建复选框和复选框的实际应用; 了解如何创建单选按钮和单选按钮的实际应用; ...

FelixSmile
2016/09/22
23
0
java Excel导入导出,基于XML的实现,easy-excel使用

项目地址:http://git.oschina.net/lis1314/easy-excel 使用easy-excel 完成Excel导入导出功能 下面有如下的几个模型 学生模型,图书模型,作者模型 有如下的Excel文件格式,需要映射成学生实体...

lis1314
2016/06/19
4.1K
18
laravel-admin 导出excel乱码问题

问题: laravel-admin 中顶部导出数据为csv格式,打开后直接乱码不知道如何解决,可能是字符集问题,代码里面默认是utf8格式修改为gbk依然乱码! 可以通过phpexcel导出数据,解决导出乱码的问...

daos
2017/12/10
0
0
dbfounder中的excel导出功能实现

@nfwork 你好,想跟你请教个问题:dbfounder中的excel导出功能该如何实现,下面是我的代码,如何在这个基础上实现导出功能,queryurl该怎么写,不知道你的excel导出的机制是怎么样的...

晓风谈剑
2015/01/06
51
3
怎么将officeexcel 2007内容转换成xml,自带开发工具导出 (图文详解)

因上面发了一份数据文件是用excel存储的,200多条数据, 需要加载到程序中。第一个就想到了copy ,想到自己想个机器一样copy,在留下一大堆垃圾代码。就果断pass 想到以前用c#可以读取excel...

补全
2012/07/04
0
0

没有更多内容

加载失败,请刷新页面

加载更多

下一页

es6

在实际开发中,我们有时需要知道对象的所有属性,原生js给我们提供了一个很好的方法:Object.keys(),该方法返回一个数组 传入对象,返回属性名 var obj = {'a':'123','b':'345'};console.l...

不负好时光
8分钟前
0
0
叮!您收到一份超值Java基础入门资料!

摘要:Java语言有什么特点?如何最大效率的学习?深浅拷贝到底有何区别?阿里巴巴高级开发工程师为大家带来Java系统解读,带你掌握Java技术要领,突破重点难点,入门面向对象编程,以详细示例...

全部原谅
9分钟前
0
0
web.xml容器加载顺序

容器对于web.xml的加载过程是context-param >> listener >> fileter >> servlet

Aeroever
12分钟前
1
0
Docker容器日志查看与清理

1. 问题 docker容器日志导致主机磁盘空间满了。docker logs -f container_name噼里啪啦一大堆,很占用空间,不用的日志可以清理掉了。 2. 解决方法 2.1 找出Docker容器日志 在linux上,容器日...

muzi1994
13分钟前
0
0
J2Cache 和普通缓存框架有何不同,它解决了什么问题?

不少人看到 J2Cache 第一眼时,会认为这就是一个普普通通的缓存框架,和例如 Ehcache、Caffeine 、Spring Cache 之类的项目没什么区别,无非是造了一个新的轮子而已。事实上完全不是一回事!...

红薯
15分钟前
365
9

没有更多内容

加载失败,请刷新页面

加载更多

下一页

返回顶部
顶部