遇到了线上bug问题,就是查询数据有2364条数据记录.通过POI将这些数据西写入到Excel中,(创建的Excel是.xls).然后查看日志2364条数据确实有通过程序写入到Excel中去,但是最后在下载这个Excel数据的时候却只有2000条记录数据.
xls的sheet没记错的话每页是6.5w+的数据限制
没遇到过这种问题,你可以试试其他组件比如free spire.xls for java
这个估计不是POI的问题,xls限制肯定不止2000行,你看下是不是分页的问题,最简单的验证方法就是建一个测试类,直接循环写入数字1-2364,每行一个,这样很快就知道是不是POI的问题
嗯,我试下简单的测试,就直接循环写个2500条数据到Excel里面,(不过正常情况下这个测试应该是能正常把这个2500条数据写到Excel中并下载出来线上的),要是 没有问题,只能直接手动在本地数据库几个表里面去模拟生产环境的数据库的数据添加数据,debug程序看看问题了
@果果爱吃土豆: 还有一种方式,可以把生产环境的数据json序列化写入日志(最好单独一个文件),然后把json数据(日志)拿到开发环境反序列化,先检查记录条数是否正确,然后写入excel,这样排查也比较快
你拿他线上的数据,自己拿出来在本地模拟下呗,本地正常?
拿线上的数据这个就比较繁琐了,只能自己在本地环境下去添加不同的两千多条数据信息
@果果爱吃土豆: 那你本地环境添加的2000+条数据正常吗?
@果果爱吃土豆: 还有就是看下线上丢失的那些数据和正常的数据对比下有区别吗?
停在2000這種整數,是否是buffer的問題?
我有在2000这里设置日志,没有异常情况
@果果爱吃土豆:
瞭解,另一個問題,2000是最後一筆的serial
那麼實際輸出的檔案總共也是2000 rows嗎?
你看看没导出的那部分数据,看看那一部分数据有没有啥问题,排查一下