问题解决:发现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 文件相关的内容即可。

相关推荐
木斯佳2 小时前
前端八股文面经大全:腾讯前端实习二、三OC面(2026-04-27)·面经深度解析
前端·状态模式
实战编程1 天前
Temu 插件导出 Excel 图片问题总结(SheetJS / ExcelJS)
excel
Data-Miner1 天前
用DeepSeek V4做表:数以轻舟Agent让做Excel表像聊天一样简单
microsoft·excel
Eiceblue2 天前
使用 C# 将 Excel 转换为 Markdown 表格(含批量转换示例)
开发语言·c#·excel
Java面试题总结2 天前
使用 Python 设置 Excel 数据验证
开发语言·python·excel
追逐梦想永不停2 天前
记录一个好用的excel判断数字格式的公式
前端·chrome·excel
码途漫谈2 天前
Easy-Vibe开发篇阅读笔记(十二)——后端开发之如何集成Stripe等收费系统
笔记·ai·开源·状态模式·ai编程
Eiceblue2 天前
C# 如何实现 Word 转 Excel ?分享两种实用方法
c#·word·excel
techdashen2 天前
四个解析器引发的混乱:Cloudflare 如何用 Rust 统一全栈 Cron 解析
开发语言·rust·状态模式
ximu_polaris2 天前
设计模式(C++)-行为型模式-状态模式
c++·设计模式·状态模式