poi导出Excel,打开时提示“发现“…“中的部分内容有问题。是否让我们尽量尝试修复?如果您信任此工作簿的源,清单击“是“”怎么办?

这几天在弄Excel导出的事情。导出Excel之后,点击打开会提示:

“发现"…"中的部分内容有问题。是否让我们尽量尝试修复?如果您信任此工作簿的源,清单击"是"”

先说最后是怎么解决的,再说复杂的经过。着急的就不用往后看了。
我的项目报这个错误是因为设置表格内容的时候传错了workbook。因为有一个读取原表格的workbook_1,还有一个写新表格的workbook_2。结果往新表格写数据的时候,使用了workbook_1,数据是能正常写进去没有问题,但是Excel肯定是察觉到了哪里不对,所以提示需要修复。
快去检查一下你的workbook使用的对不对吧。


下面是完成经历,也可能包含你需要的解决办法。
不知道是什么原因,于是开始各种搜索。搜索出来的答案大致分为两类:1. 设置sheet的格式,2. 设置response的content-type。
第二类我直接放弃了,因为我们的文件都是生成之后存在一个下载中心的,点击下载就不再调用接口了,直接调了文件的地址进行下载,所以也没法设置response。
于是开始尝试方式一。方式一中有两个需要设置的地方,一个是设置sheet的默认宽度和高度,代码如下:

sxssfSheet.setDefaultColumnWidth((short) (20 * 256));
sxssfSheet.setDefaultRowHeight((short) (2 * 256));

另一个是设置sheet的冻结区域,代码如下:

sheet.createFreezePane(0,1,0,1);

但是试过了,都不管用。还有说不要设置单元格格式的,于是把所有单元格的格式,包括合并单元格都删除了。结果导出打开已然提示需要修复。
最后自己仔细地捋了代码,才发现了文章一开始的错误,改完之后就不再提示修复了。


喜欢本文的朋友不要忘记点一个免费的赞哦,你的赞将是我最大的动力。

你可能感兴趣的:(Java,Java,poi,Excel,修复,导出)