Java导出Excel

本文介绍了一种使用Java将网站统计数据导出到Excel的方法。该过程包括设置Excel文件头、合并单元格、填充数据并最终导出文件。文章详细展示了如何通过遍历统计数据列表来汇总各项指标,并在Excel中呈现这些数据。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

/**
     * 导出excel文件
     */
    @RequestMapping(value = "export", method=RequestMethod.POST)
    public String exportFile(StatCmsWebstat statCmsWebstat, HttpServletRequest request, HttpServletResponse response, RedirectAttributes redirectAttributes) {
        try {
            String fileName = showMonthStr(statCmsWebstat.getStartYear(), statCmsWebstat.getYear(),
                    statCmsWebstat.getStartMonth(), statCmsWebstat.getMonth()) + statCmsWebstat.getPhase() + "学段网站统计表.xlsx";
            List<String> lsHead = new ArrayList<String>();
            lsHead.add("序号");
            lsHead.add("单位");
            lsHead.add("站点总数");
            lsHead.add("站点");
            lsHead.add("");
            lsHead.add("");
            lsHead.add("");
            lsHead.add("内容数量");
            lsHead.add("总访问量");
            lsHead.add("日均访问量");
            ExportExcel excel = new ExportExcel(fileName, lsHead);

            lsHead.clear();
            lsHead.add("");
            lsHead.add("");
            lsHead.add("");
            lsHead.add("主站");
            lsHead.add("班级空间");
            lsHead.add("专题网站");
            lsHead.add("个人空间");
            lsHead.add("");
            lsHead.add("");
            lsHead.add("");
            excel.addHead(lsHead, 2);

            excel.mergedregion(1, 2, 0, 0);
            excel.mergedregion(1, 2, 1, 1);
            excel.mergedregion(1, 2, 2, 2);
            excel.mergedregion(1, 1, 3, 6);
            excel.mergedregion(1, 2, 7, 7);
            excel.mergedregion(1, 2, 8, 8);
            excel.mergedregion(1, 2, 9, 9);

            List<StatCmsWebstat> ls = statCmsWebstatService.findStatList(statCmsWebstat);
            excel.setrownun(3);

            Integer countSiteTotal = 0; 
            Integer countMainStationNum = 0;
            Integer countThematicSpaceNum = 0;
            Integer countClassSpaceNum = 0;
            Integer countPersonalSpaceNum = 0;
            Integer countContentNum = 0;
            Integer countTotalview = 0;
            Float countAverageDailyTraffic = (float)0.00;
            if(ls.size()>0){
                for (int i = 0; i < ls.size(); i++) {
                    StatCmsWebstat webstat = ls.get(i);
                    Row row = excel.addRow();
                    excel.addCell(row, 0, String.valueOf(i+1));
                    excel.addCell(row, 1, ls.get(i).getCreateUnit());
                    excel.addCell(row, 2, ls.get(i).getSiteTotal());
                    excel.addCell(row, 3, ls.get(i).getMainStationNum());
                    excel.addCell(row, 4, ls.get(i).getClassSpaceNum());
                    excel.addCell(row, 5, ls.get(i).getThematicSpaceNum());
                    excel.addCell(row, 6, ls.get(i).getPersonalSpaceNum());
                    excel.addCell(row, 7, ls.get(i).getContentNum());
                    excel.addCell(row, 8, ls.get(i).getTotalview());
                    excel.addCell(row, 9, ls.get(i).getAverageDailyTraffic());

                    countSiteTotal += webstat.getSiteTotal();
                    countMainStationNum += webstat.getMainStationNum();
                    countThematicSpaceNum += webstat.getThematicSpaceNum();
                    countClassSpaceNum += webstat.getClassSpaceNum();
                    countPersonalSpaceNum += webstat.getPersonalSpaceNum();
                    countContentNum += webstat.getContentNum();
                    countTotalview += webstat.getTotalview();
                    countAverageDailyTraffic += webstat.getAverageDailyTraffic();
                }

                Row rowCount = excel.addRow();
                excel.addCell(rowCount, 0, "合计");
                excel.addCell(rowCount, 1, "");
                excel.addCell(rowCount, 2, countSiteTotal);
                excel.addCell(rowCount, 3, countMainStationNum);
                excel.addCell(rowCount, 4, countClassSpaceNum);
                excel.addCell(rowCount, 5, countThematicSpaceNum);
                excel.addCell(rowCount, 6, countPersonalSpaceNum);
                excel.addCell(rowCount, 7, countContentNum);
                excel.addCell(rowCount, 8, countTotalview);
                excel.addCell(rowCount, 9, countAverageDailyTraffic);

                excel.write(response, fileName).dispose();
            }else{
                addMessage(redirectAttributes, "没有找到可以导出的数据!");
            }
            return null;
        } catch (Exception e) {
            addMessage(redirectAttributes, "网站统计记录导出失败!");
        }
        return "redirect:"+Global.getAdminPath()+"/cms/statCmsWebstat/index";
    }
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值