mirror of
				https://gitee.com/hhyykk/ipms-sjy.git
				synced 2025-10-31 10:18:42 +08:00 
			
		
		
		
	🐛 导出 Excel:Long 类型 ID 会丢失精度
This commit is contained in:
		| @@ -1,12 +1,14 @@ | ||||
| package cn.iocoder.yudao.framework.excel.core.util; | ||||
|  | ||||
| import com.alibaba.excel.EasyExcel; | ||||
| import com.alibaba.excel.converters.longconverter.LongStringConverter; | ||||
| import com.alibaba.excel.write.style.column.LongestMatchColumnWidthStyleStrategy; | ||||
| import org.springframework.web.multipart.MultipartFile; | ||||
|  | ||||
| import jakarta.servlet.http.HttpServletResponse; | ||||
| import java.io.IOException; | ||||
| import java.net.URLEncoder; | ||||
| import java.nio.charset.StandardCharsets; | ||||
| import java.util.List; | ||||
|  | ||||
| /** | ||||
| @@ -33,9 +35,10 @@ public class ExcelUtils { | ||||
|         EasyExcel.write(response.getOutputStream(), head) | ||||
|                 .autoCloseStream(false) // 不要自动关闭,交给 Servlet 自己处理 | ||||
|                 .registerWriteHandler(new LongestMatchColumnWidthStyleStrategy()) // 基于 column 长度,自动适配。最大 255 宽度 | ||||
|                 .registerConverter(new LongStringConverter()) // 避免 Long 类型丢失精度 | ||||
|                 .sheet(sheetName).doWrite(data); | ||||
|         // 设置 header 和 contentType。写在最后的原因是,避免报错时,响应 contentType 已经被修改了 | ||||
|         response.addHeader("Content-Disposition", "attachment;filename=" + URLEncoder.encode(filename, "UTF-8")); | ||||
|         response.addHeader("Content-Disposition", "attachment;filename=" + URLEncoder.encode(filename, StandardCharsets.UTF_8)); | ||||
|         response.setContentType("application/vnd.ms-excel;charset=UTF-8"); | ||||
|     } | ||||
|  | ||||
|   | ||||
		Reference in New Issue
	
	Block a user
	 YunaiV
					YunaiV