redisCache存储Workbook报错解决方案

2 篇文章 0 订阅
1 篇文章 0 订阅
文章描述了一个使用Fastjson时遇到的错误,涉及Fastjson1.2.76版本,类XSSFWorkbook和SchemaTypeImpl。为了解决问题,文章提出了通过Base64转码存储在RedisCache中的Excel文件的方法,并详细阐述了编码和解码的步骤,包括从输入流创建Workbook,以及从Redis获取Base64编码后的内容再转换回Workbook。
摘要由CSDN通过智能技术生成

报错原因:

write javaBean error, fastjson version 1.2.76, class org.apache.poi.xssf.usermodel.XSSFWorkbook, write javaBean error, fastjson version 1.2.76, class org.apache.xmlbeans.impl.schema.SchemaTypeImpl, fieldName : _schema_type, write javaBean error, fastjson version 1.2.76, class org.apache.xmlbeans.impl.schema.SchemaTypeImpl, fieldName : baseType

解决方式:

//转码
 			Workbook workbook = WorkbookFactory.create(file.getInputStream());
            //                将Excel文件进行Base64转码
            ByteArrayOutputStream byteArrayOutputStream = new ByteArrayOutputStream();
            workbook.write(byteArrayOutputStream);
            byte[] bytes = byteArrayOutputStream.toByteArray();
            String base64ExlCode = Base64Utils.encodeToString(bytes);
            redisCache.setCacheObject("ALM_xbrl_ability_workbook", base64ExlCode);
//解码
			String base64ExlCode = redisCache.getCacheObject("ALM_xbrl_ability_workbook");
        // 解码为byte数组
        	byte[] byteArray = Base64.getDecoder().decode(base64ExlCode);
        // 将byte数组转化为输入流
       		InputStream inputStream = new ByteArrayInputStream(byteArray);
        	Workbook workbook = WorkbookFactory.create(inputStream);
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值