天天看点

java web导出csv文件

用csv导出取代excel导出的原因

poi导出excel时会出现以下问题:

  1. excel2003 单sheet最多只能导出65536条数据(excel2007 单sheet能导出百万级数据,弥补了2003的缺陷)
  2. excel每创建一个单元格就会生成一个对象,并且excel生成过程中不会释放对象,所以会占用大量的内存资源

csv文件打开方式:

  1. office excel打开
  2. wps excel打开

问题:

  1. utf-8 导出,导致office excel打开乱码

    原因:office excel默认以assic编码打开csv文件(office excel不会提前判断文件编码格式,wps excel则会自动判断)

  2. utf-8 + bom 导出, 解决了office excel打开文件乱码问题,但是导致了wps excel打开文件部分中文乱码问题

    原因:BufferedInputStream 以字节的方式读取文件,当字节数组以汉字为分割时,会出现乱码

    解决:改用BufferedReader,以字符的方式读取文件

继续阅读