NutzCN Logo
问答 J4E能不能导出多表数据?
发布于 1195天前 作者 wx_chrohf6r75suj7q2r8fh 1238 次浏览 复制 上一个帖子 下一个帖子
标签:

导出一张SHEETE表没问题,导出两张或多张,怎么处理

14 回复

在一张表里面多个SHEET,也就是一个EXCEL文件,多个数据库,放在不通的SHEET里,J4E能做吗?

我的想法就是在TEMPFIE写一个空文件,然后用不同的LISt数据表,用这个语句写入
boolean isok = J4E.toExcel(downfile,subPon,null);,在送前台下载
不晓得行不行

不晓得在多次写这个文件时,会不会只是最后一次的数据

另外就是不知道怎么在TEMPFILE下写文件

老大有这方面的资料或经验吗?

只能翻源码吧,这是胖五写的,我也不熟

我试了一下,只有最后一次的数据

我查了一下,有个appendExcel,估计能够实现

用appendExcel可以实现,配合J4ECONF设置
list是数据体,fields是需显示的字段名,sheetname是表名称,downfile是送前台的文件名,append_or_create是标识新建EXCEL文件或在原EXCEL文件添加

public String appendexcel(List list,String fields,String sheetname,File downfile,boolean append_or_create)
{
     if(list==null)
         return "错误:请注意核对上传文件的具体时间点";
     J4EConf j4econf=new J4EConf();
     
     j4econf = J4EConf.from(list.get(0).getClass());
     j4econf.setUse2007(true);
     List<J4EColumn> jcols = j4econf.getColumns();
    for (Iterator<J4EColumn> it = jcols.iterator(); it.hasNext();) {
        J4EColumn j4eColumn = it.next();
        j4eColumn.setIgnore(true);
        if(fields.contains(j4eColumn.getFieldName()))
        {
            j4eColumn.setIgnore(false);
        }
    }
     boolean isok=false;
    j4econf.setPassRow(0);
     j4econf.setSheetName(sheetname);
     
     if(append_or_create)
         isok = J4E.appendExcel(downfile,list,j4econf);
     else
         isok = J4E.toExcel(downfile,list,j4econf);
     if(!isok)
          return "错误"+sheetname+"导出失败";
     else
         return "OK";
}

还有点问题,有时出现乱码,是不是字符设置的问题?

有时4张表,只有3张,报inputSTREAM不存在,但在APPEND是又成功了,表现出来不稳定,怎么办?

是不是需在TEMPFILE下写一个模板文件?

嗯,要不直接改源码吧

添加回复
请先登陆
回到顶部