多语言展示
当前在线:358今日阅读:23今日分享:25

java实现大数据Excel导出

Excel表格大文件导出的解决方案,主要就是使用csv文件替代表格(csv可以和表格互相转换且使用效果基本相同)。csv格式文件和txt文件一样理论上没有大小上限。      逗号分隔值(Comma-Separated Values,CSV,有时也称为字符分隔值,因为分隔字符也可以不是逗号),其文件以纯文本形式存储表格数据(数字和文本)。纯文本意味着该文件是一个字符序列,不含必须像二进制数字那样被解读的数据。CSV文件由任意数目的记录组成,记录间以某种换行符分隔;每条记录由字段组成,字段间的分隔符是其它字符或字符串,最常见的是逗号或制表符。通常,所有记录都有完全相同的字段序列。通常都是纯文本文件。建议使用WORDPAD或是记事本来开启,再则先另存新档后用EXCEL开启,也是方法之一。      CSV文件格式的通用标准并不存在,但是在RFC 4180中有基础性的描述。使用的字符编码同样没有被指定,但是bitASCII是最基本的通用编码。
工具/原料
1

电脑

2

intellij IDEA 2018.3.3

方法/步骤
2

第二步骤:代码实现。import org.springframework.web.bind.annotation.GetMapping;import org.springframework.web.bind.annotation.RestController;import javax.servlet.http.HttpServletRequest;import javax.servlet.http.HttpServletResponse;import java.io.PrintWriter;import java.util.ArrayList;import java.util.HashMap;import java.util.List;import java.util.Map;@RestControllerpublic class CSVController { @GetMapping('/exportCsv') public void exportCsv(HttpServletRequest request, HttpServletResponse response) { try { List oneWinnerList = new ArrayList(); 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('expressOrde', '快递单号'); oneWinnerList.add(map); } response.reset(); response.setContentType('application/csv;charset=UTF-8'); response.setHeader('Content-Disposition', 'attachment;filename=orderData ' + System.currentTimeMillis() + '.csv'); response.setCharacterEncoding('UTF-8'); PrintWriter out = response.getWriter(); out.println('winnerId(请勿修改),订单号,商品标题,商品Id,期数,用户Id,用户,订单状态,收货人,收货电话,收货地址,快递名称,快递单号'); for (int i = 0, length = oneWinnerList.size(); i < length; i++) { Map onewinner = oneWinnerList.get(i); String str = onewinner.get('winnerId') + ',' + onewinner.get('orderDetailId') + ',' + onewinner.get('title') + ',' + onewinner.get('goodsId') + ',' + onewinner.get('periods') + ',' + onewinner.get('userId') + ',' + onewinner.get('userName') + ',' + onewinner.get('statusDetail') + ',' + onewinner.get('addressee') + ',' + onewinner.get('phone') + ',' + onewinner.get('address') + ',' + onewinner.get('expressCompany') + ',' + onewinner.get('expressOrde'); str = str.replace('null', ''); out.println(str); } out.flush(); out.close(); } catch (Exception e) { e.printStackTrace(); } }}

注意事项
1

jdk1.8

2

csv的导出只需要jdk就可以支持

推荐信息