问题解决:发现Excel中的部分内容有问题。是否让我们尽量尝试恢复? 如果您信任此工作簿的源,请单击“是”。

在开发同步导出功能是遇到了如标题所示的问题,解决后遂记录下来供大家参考。

java 复制代码
@RestController
public class XxxController {
	@PostMapping("/export")
    public BaseResponse export(@RequestBody PolicyErrorAnalysisExportReq exportReq, HttpServletResponse response) {
        BaseResponse res = new BaseResponse();
        try {
			// ...
		} catch(Exception e) {
	
		}

		return res
	}
}

执行如上方法导出时,打开的 Excel 文件会提示:发现Excel中的部分内容有问题。是否让我们尽量尝试恢复? 如果您信任此工作簿的源,请单击"是"。

因为前端在处理文件流时,不知道文件流的长度,会全量处理文件流,由于指定了 @RestController 注解,那么 BaseResponse res 会被包含在响应体中,那么这样前端便解析到了无关的字符。将导出的 Excel 文件修改成 .xml 后缀查看其中信息 ,如下所示:

发现果然包含了响应对象的 JSON 格式,解决该问题也非常简单,第一种方案是直接将返回值改成 void,让前端只处理流即可

java 复制代码
@RestController
public class XxxController {
	@PostMapping("/export")
    public void export(@RequestBody PolicyErrorAnalysisExportReq exportReq, HttpServletResponse response) {
        try {
			// ...
		} catch(Exception e) {
	
		}

	}
}

第二种方案是在响应头中指定输出流的长度,到了指定长度后前端便不再处理,只解决 Excel 文件相关的内容即可。

相关推荐
weixin_471383038 分钟前
preload,prefetch,preconnect
状态模式
前端不太难39 分钟前
内存带宽、超长上下文与解码效率:AI推理的三大核心制约
人工智能·状态模式
五阿哥永琪11 小时前
前后端跨域的解决办法
状态模式
星越华夏20 小时前
python办公自动化,csv文件/excel文件差集合并
开发语言·python·excel
Komorebi_999920 小时前
LangChain Day6 前端视角:简易接口联调思路
状态模式
叶小鸡21 小时前
Java 篇-项目实战-AI 天机学堂(从 0 到 1)-day4
状态模式
开开心心就好21 小时前
180套模板的图片艺术拼接实用工具
linux·服务器·网络·spring·智能手机·maven·excel
shjsjdmmd1 天前
Claude API 流式输出(SSE)实战指南:从打字机效果到 Agent 工具调用完整落地
状态模式
前端不太难1 天前
解码大模型的效率革命:当算力不再是唯一瓶颈
状态模式
前端不太难1 天前
从算力到存力:AI性能的决定性因素正在重构
人工智能·重构·状态模式