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

相关推荐
mit6.8248 小时前
[Agent开发平台] API网关 | 业务领域 | DTO格式 | 分页令牌
人工智能·golang·状态模式
六点半88811 小时前
【Linux】vim—基操
linux·vim·excel
_oP_i17 小时前
移除 Excel 文件(.xlsx)的工作表保护
excel
瓶子xf1 天前
Excel制作滑珠图、哑铃图
excel
President~wolf1 天前
数据处理--生成Excel文档
excel
xuanjiong1 天前
Excel数据转化为Xmind思维导图全流程(含Word转化格式),实用
excel·xmind
飏旎2 天前
对于前端闭包的详细理解
前端·状态模式
切糕师学AI2 天前
Spire.XLS for .NET 中, 将 Excel 转换为 PDF 时, 如何设置纸张大小为A4纸,并将excel内容分页放置?
pdf·.net·excel·spire
qq_546937272 天前
Excel文件批量加密工具
excel
曾经的三心草2 天前
微服务的编程测评系统9-竞赛新增-竞赛编辑
微服务·架构·状态模式