java excel 导出 多sheet

SunnyLife123 发布于 2014/01/06 11:27
阅读 5K+
收藏 0
Java导出多个sheet的excel,每个sheet都是采用不同的模板 ,哪种实现方式 比较好 易实现呢?求解!!!!
加载中
0
ReSky
ReSky

你想要的是这种样式不:

/**
     * 多数据源 分组导出
     */
    @Test
    public void DoubleMultipleBeanTest(){
        XBeanExport bean = ExportExcel.BeanExport(MultipleBean.class);
        List<MultipleBean> mulList = initMultipleBean();
        bean.createBeanSheet("企业部门数据","部门信息",MultipleBean.class,1,1).addData(mulList);
        bean.createBeanSheet("企业员工数据","员工信息",MultipleBean.class,1,2).addData(mulList);
        bean.createBeanSheet("企业员工薪资数据","员工薪资",MultipleBean.class,1,3).addData(mulList);
        bean.createBeanSheet("企业综合数据","",MultipleBean.class,1,1,2,3).addData(mulList);
        try {
            bean.writeFile("C:\\Users\\xxx\\multiple-"+System.currentTimeMillis()+".xlsx");
        } catch (IOException e) {
            e.printStackTrace();  //To change body of catch statement use File | Settings | File Templates.
        }
    }
把里面的一些对于workbook,sheet等的操作封装了一下

最后导出结果为:

0
sxgkwei
sxgkwei
jxl可以做到这种吧。根据一个模板xls文件,然后逐个写入sheet,有点bug就是模板文件的格子背景颜色好像总取不到,其它都没发现有啥问题。
0
sxgkwei
sxgkwei
File file = new File(session.getServletContext().getRealPath("/") + define.getMouldUrl());
        if (!file.exists()) {
            json.setMsg("用于作为导出模板的xls模板文件不存在");
            return json;
        }

        ByteArrayOutputStream os = new ByteArrayOutputStream();
        WritableWorkbook workbook = null;
        try {
//核心就是这句吧,根据模板xls创建内存xls文件byte[],数据写完之后,把byte写入输出流就行了
            workbook = Workbook.createWorkbook(os, Workbook.getWorkbook(file));
            writeData(workbook, data, define);

        } catch (IOException | NoSuchMethodException | InvocationTargetException
                | WriteException | IllegalAccessException | BiffException e) {
            json.setMsg("根据模板xls文件创建新文件失败");
            return json;
        } finally {
            if (workbook != null) {
                try {
                    workbook.write();
                    workbook.close();
                } catch (IOException e) {
                    e.printStackTrace();
                }
            }
        }



0
SunnyLife123
SunnyLife123

引用来自“ReSky”的答案

你想要的是这种样式不:

/**
     * 多数据源 分组导出
     */
    @Test
    public void DoubleMultipleBeanTest(){
        XBeanExport bean = ExportExcel.BeanExport(MultipleBean.class);
        List<MultipleBean> mulList = initMultipleBean();
        bean.createBeanSheet("企业部门数据","部门信息",MultipleBean.class,1,1).addData(mulList);
        bean.createBeanSheet("企业员工数据","员工信息",MultipleBean.class,1,2).addData(mulList);
        bean.createBeanSheet("企业员工薪资数据","员工薪资",MultipleBean.class,1,3).addData(mulList);
        bean.createBeanSheet("企业综合数据","",MultipleBean.class,1,1,2,3).addData(mulList);
        try {
            bean.writeFile("C:\\Users\\xxx\\multiple-"+System.currentTimeMillis()+".xlsx");
        } catch (IOException e) {
            e.printStackTrace();  //To change body of catch statement use File | Settings | File Templates.
        }
    }
把里面的一些对于workbook,sheet等的操作封装了一下

最后导出结果为:

就是这个效果啊?可以用模板实现吗?你的这个例子可以给我参考下么?
ReSky
ReSky
回复 @sisyphus : 我们公司不让用这个,给你个链接自己去下载:http://pan.baidu.com/s/1kTDgHh1
SunnyLife123
SunnyLife123
该评论暂时无法显示,详情咨询 QQ 群:点此入群
ReSky
ReSky
回复 @sisyphus : 给我你的E-mail
SunnyLife123
SunnyLife123
回复 @ReSky : 怎样联系呢?
ReSky
ReSky
回复 @sisyphus : 可以
下一页
OSCHINA
登录后可查看更多优质内容
返回顶部
顶部