`

java excel导出

 
阅读更多

需求 导出excel

package com.sky.car.controller.jt;

import com.sky.car.model.OfflineVo;
import com.sky.car.util.HttpUtils;
import com.sky.common.Environment;
import jxl.Workbook;
import jxl.format.CellFormat;
import jxl.read.biff.BiffException;
import jxl.write.*;
import net.sf.json.JSONArray;
import org.apache.http.NameValuePair;
import org.apache.http.message.BasicNameValuePair;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Controller;
import org.springframework.web.bind.annotation.CrossOrigin;
import org.springframework.web.bind.annotation.RequestMapping;

import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;
import java.io.IOException;
import java.io.OutputStream;
import java.util.ArrayList;
import java.util.List;

/**
 * Created by jack on 2017/5/15.
 */
@Controller
@CrossOrigin
public class StatOfflineDataExportController {
    @Autowired
    Environment environment;

    @RequestMapping(value = "/statOfflineData/export", produces = {"text/html;charset=UTF-8"})
    public void download(HttpServletRequest request, HttpServletResponse response,
                         String days, String ownerName, String apiKey) throws IOException, BiffException, WriteException, Exception {
        response.setHeader("Content-Disposition", "attachment; filename=count.xls");
        WritableWorkbook writableWorkbook = ExcelUtils.createTemplate(response.getOutputStream(), environment.getJtHost(), days, ownerName, apiKey);
        writableWorkbook.write();
        writableWorkbook.close();
    }

    static class ExcelUtils {
        public static WritableWorkbook createTemplate(OutputStream output, String headerUrl, String days, String ownerName, String apiKey) throws IOException, WriteException, Exception {
            WritableWorkbook writableWorkbook = Workbook.createWorkbook(output);
            WritableSheet wsheet = writableWorkbook.createSheet("离线数据统计", 0);


            CellFormat cf = writableWorkbook.getSheet(0).getCell(1, 0).getCellFormat();
            WritableCellFormat wc = new WritableCellFormat();
            // 设置居中
            // wc.setAlignment(GroupLayout.Alignment.CENTER);
            // 设置边框线
            wc.setBorder(Border.ALL, BorderLineStyle.THIN);
            wc.setBackground(jxl.format.Colour.GREEN);

            Label nc0 = new Label(0, 0, "行政区域", wc);//Label(x,y,z)其中x代表单元格的第x+1列,第y+1行, 单元格的内容是z
            Label nc1 = new Label(1, 0, "单位名称", wc);
            Label nc2 = new Label(2, 0, "车牌号", wc);
            Label nc3 = new Label(3, 0, "车牌颜色", wc);
            Label nc4 = new Label(4, 0, "最后上线时间", wc);
            Label nc5 = new Label(5, 0, "离线天数", wc);
            Label nc6 = new Label(6, 0, "统计日期", wc);
            wsheet.addCell(nc0);
            wsheet.addCell(nc1);
            wsheet.addCell(nc2);
            wsheet.addCell(nc3);
            wsheet.addCell(nc4);
            wsheet.addCell(nc5);
            wsheet.addCell(nc6);
            List<OfflineVo> list = loadDate(apiKey, headerUrl, ownerName, days);
            for (int i = 1; i <= list.size(); i++) {
                OfflineVo offlineVo = list.get(i - 1);
                Label ncd0 = new Label(0, i, offlineVo.getDistrictName());//Label(x,y,z)其中x代表单元格的第x+1列,第y+1行, 单元格的内容是z
                Label ncd1 = new Label(1, i, offlineVo.getOwnerName());
                Label ncd2 = new Label(2, i, offlineVo.getVname());
                Label ncd3 = new Label(3, i, offlineVo.getColor());
                Label ncd4 = new Label(4, i, offlineVo.getLastGPSTime());
                Label ncd5 = new Label(5, i, offlineVo.getOfflineDays());
                Label ncd6 = new Label(6, i, offlineVo.getStatDate());
                wsheet.addCell(ncd0);
                wsheet.addCell(ncd1);
                wsheet.addCell(ncd2);
                wsheet.addCell(ncd3);
                wsheet.addCell(ncd4);
                wsheet.addCell(ncd5);
                wsheet.addCell(ncd6);
            }
            return writableWorkbook;
        }
    }

    static List<OfflineVo> loadDate(String apiKey, String headerUrl, String ownerName, String days) throws Exception {
        String url = headerUrl + "/mnt.rest/rest/plat-stat-shx-svc/statOfflineData?ownerName=@ownerName&days=@days"
                .replace("@ownerName", ownerName)
                .replace("@days", days);
        List<NameValuePair> params = new ArrayList<NameValuePair>();
        params.add(new BasicNameValuePair("ownerName", ownerName));
        params.add(new BasicNameValuePair("days", days));
        String result = HttpUtils.post(url, params, apiKey);
        JSONArray array = JSONArray.fromObject(result);
        List<OfflineVo> list = JSONArray.toList(array, OfflineVo.class);
        return list;
    }

}

 

分享到:
评论

相关推荐

    java Excel导出导入

    java Excel 导出 导入java Excel 导出 导入java Excel 导出 导入java Excel 导出 导入java Excel 导出 导入java Excel 导出 导入java Excel 导出 导入java Excel 导出 导入

    java excel导出数据

    Java Excel导出数据是Java开发中常见的需求,主要用于将程序处理的数据以Excel表格的形式提供给用户下载。在Java中,Apache POI库是处理Microsoft Office文档(包括Excel)的首选工具,因此,"java poi"标签表明我们...

    JavaExcel导出示例

    本示例主要关注如何使用Apache POI库来实现JavaExcel导出功能。Apache POI是一个开源项目,它提供了读取和写入Microsoft Office格式文件的能力,包括Excel。 首先,你需要在你的项目中引入Apache POI依赖。如果你...

    java Excel导出 Excel数据处理

    在Java编程环境中,处理Excel数据并将其导出是一项常见的任务,尤其在数据分析、报表生成或者数据交换等场景中。Excel文件格式(.xlsx或.xls)因其直观易用和广泛支持而受到青睐。在这个主题中,我们将深入探讨如何...

    java excel导出util包

    "java excel导出util包"是一个专为解决这个问题而设计的工具集,它简化了从后端生成并导出Excel文件的过程。下面将详细介绍这个util包可能包含的组件、功能及其工作原理。 首先,这个util包很可能提供了方便的API,...

    java excel导出demo

    Java Excel导出是一个常见的需求,尤其在数据处理和报表生成的场景中。Apache POI库是Java领域中用于操作Microsoft Office格式文件,尤其是Excel的主要工具。在这个“java excel导出demo”中,我们将会深入探讨如何...

    java excel导出 支持03 07导出 样式可配置

    在这个场景中,"java excel导出 支持03 07导出 样式可配置"指的是使用Java来实现Excel文件的导出功能,同时兼容旧版的Excel 2003(.xls)和新版的Excel 2007及以后版本(.xlsx)。这个功能通常涉及到Apache POI库,...

    java excel 导出

    Java Excel导出主要涉及将程序处理的数据写入Excel文件,以便用户可以查看、编辑或进一步分析。Java提供了多种库来实现这一功能,如Apache POI、JExcelAPI和HSSF/SSFX等。Apache POI是最常用的一个,它提供了对...

    java复杂模板excel导出例子

    在Java编程中,导出复杂的Excel模板是一...熟练掌握Apache POI或其他相关库的用法,结合业务需求,能有效提高工作效率并提供高质量的Excel导出功能。在实际开发中,不断优化代码和策略,可以更好地满足性能和功能需求。

    JAVA poi 做EXCEL导出(包含图片) 完整版

    本教程将详细介绍如何使用JAVA POI库来创建一个包含图片的完整Excel导出功能。 首先,你需要在项目中引入Apache POI依赖。如果你使用的是Maven,可以在pom.xml文件中添加以下依赖: ```xml &lt;groupId&gt;org.apache....

    java导出复杂Excel内容数据动态循环

    java导出复杂Excel内容数据动态循环

    java导出Excel 时候 相同行合并

    java导出Excel 时候 相同行合并(可合并多列); 已测试通过;

    excel批量导出.java

    java实现excel批量导出功能的所有代买实现逻辑,及源码。适合初级、中级、高级程序员,用户一看就明白

    JAVA EXCEL导出

    Java Excel导出是Java开发中常见的一种需求,用于将数据以Excel格式导出,便于用户进行数据管理和分析。以下是对给定代码的详细解释和相关知识点的介绍: 1. **导出工具类**:`ExcelUtil` 是一个静态工具类,提供了...

    最新java实现Excel导入导出

    用Java实现的Excel的导入导出,简洁明了,高质量代码。

    导出excel注解方式

    然后,我们需要创建一个工具类,负责处理Excel导出。这个类会扫描实体类上的注解,并根据这些信息创建Excel工作表: ```java public class ExcelExportUtil { public static void exportExcel(List&lt;User&gt; user...

    java导出图片到excel

    在Java编程中,导出数据到Excel是一种常见的需求,尤其当需要将图片与文本一起展示在电子表格中时。这个任务通常涉及到使用第三方库来处理Excel文件,因为Java标准库并未提供直接支持图像到Excel的功能。以下是一些...

    java导出excel树结构工具类

    该工具类实现java导出树形结构的方法,并未采用excel分组功能实现,而是根据树节点显示层级设置excel样式。针对easyUi,treeGrid开发的导出excel功能。方法简便实用、性强、通俗易懂。项目中亲测,no problem。

    java导出excel并生成折线图.java

    资源描述:一个使用java做的导出数据,并且可以在excel表生成折线图的工具类,使用简单操作方便。

    javaExcel大数据导出

    "javaExcel大数据导出"这个话题涉及到的主要知识点包括:Java与Excel的交互、大数据处理策略、性能优化以及内存管理。 1. **Java与Excel的交互**: Java可以通过多种库来实现与Excel的交互,如Apache POI、...

Global site tag (gtag.js) - Google Analytics