用csv导出取代excel导出的原因
poi导出excel时会出现以下问题:
- excel2003 单sheet最多只能导出65536条数据(excel2007 单sheet能导出百万级数据,弥补了2003的缺陷)
- excel每创建一个单元格就会生成一个对象,并且excel生成过程中不会释放对象,所以会占用大量的内存资源
csv文件打开方式:
- office excel打开
- wps excel打开
问题:
-
utf-8 导出,导致office excel打开乱码
原因:office excel默认以assic编码打开csv文件(office excel不会提前判断文件编码格式,wps excel则会自动判断)
-
utf-8 + bom 导出, 解决了office excel打开文件乱码问题,但是导致了wps excel打开文件部分中文乱码问题
原因:BufferedInputStream 以字节的方式读取文件,当字节数组以汉字为分割时,会出现乱码
解决:改用BufferedReader,以字符的方式读取文件