2016 - 2024

感恩一路有你

Java实现大数据Excel导出

浏览量:2196 时间:2024-01-18 08:51:56 作者:采采

在处理大量数据需要导出Excel表格时,我们可以采用一种解决方案,即使用CSV文件替代表格。CSV文件是一种纯文本格式,可以和表格互相转换且使用效果基本相同。与普通的Excel文件不同,CSV文件理论上没有大小上限。

CSV文件(逗号分隔值)以纯文本形式存储表格数据,不包含像二进制数字那样被解读的数据。它由任意数量的记录组成,记录间以某种换行符分隔,每条记录由字段组成,字段间的分隔符是其他字符或字符串,最常见的是逗号或制表符。所有记录通常都有完全相同的字段序列。建议使用WordPad或记事本来打开CSV文件,也可以先另存为新档再用Excel打开。

虽然CSV文件格式的通用标准并不存在,但是在RFC 4180中有一些基础性的描述。使用的字符编码也没有被指定,但是bitASCII是最基本的通用编码。

第一步骤:创建SpringBoot项目

1. 使用IDEA创建SpringBoot项目,具体可以参考:

2. 使用Eclipse创建SpringBoot项目,具体可以参考:

3. 创建普通JavaWeb项目使用Servlet实现请求,具体可以参考: 或者百度搜索:servlet类如何映射到URL路径。

第二步骤:代码实现

import ;
import ;
import ;
import ;
import ;
import ;
import java.util.HashMap;
import ;
import ;
@RestController
public class CSVController {
    @GetMapping("/exportCsv")
    public void exportCsv(HttpServletRequest request, HttpServletResponse response) {
        try {
            Listlt;Mapgt; oneWinnerList  new ArrayListlt;gt;();
            for (int i  0; i < 100000; i  ) {
                Map map  new HashMap<>();
                map.put("winnerId", "winnerId(请勿修改)");
                map.put("orderDetailId", "订单号");
                map.put("title", "商品标题");
                map.put("goodsId", "商品Id");
                map.put("periods", "期数");
                map.put("userId", "用户Id");
                map.put("userName", "用户");
                map.put("statusDetail", "订单状态");
                map.put("addressee", "收货人");
                map.put("phone", "收货电话");
                map.put("address", "收货地址");
                map.put("expressCompany", "快递名称");
                map.put("expressOrder", "快递单号");
                (map);
            }
            ();
            ("application/csv;charsetUTF-8");
            ("Content-Disposition", "attachment;filenameorderData "   ()   ".csv");
            ("UTF-8");
            PrintWriter out  ();
            ("winnerId(请勿修改),订单号,商品标题,商品Id,期数,用户Id,用户,订单状态,收货人,收货电话,收货地址,快递名称,快递单号");
            for (int i  0, length  (); i < length; i  ) {
                Map onewinner  (i);
                String str  ("winnerId")   ","  
                        ("orderDetailId")   ","  
                        ("title")   ","  
                        ("goodsId")   ","  
                        ("periods")   ","  
                        ("userId")   ","  
                        ("userName")   ","  
                        ("statusDetail")   ","  
                        ("addressee")   ","  
                        ("phone")   ","  
                        ("address")   ","  
                        ("expressCompany")   ","  
                        ("expressOrder");
                str  ("null", "");
                (str);
            }
            out.flush();
            ();
        } catch (Exception e) {
            ();
        }
    }
}

第三步骤:测试

1. 使用浏览器打开页面 http://localhost:8080/exportCsv

2. 导出文件大小为146M。

版权声明:本文内容由互联网用户自发贡献,本站不承担相关法律责任.如有侵权/违法内容,本站将立刻删除。