首页 > 其他分享 >关于客户的机器加密问题,造成写Excel出现错误(只限于有名称管理器的情况下)

关于客户的机器加密问题,造成写Excel出现错误(只限于有名称管理器的情况下)

时间:2022-11-08 15:36:26浏览次数:39  
标签:java 管理器 HFBatchVersionExportHandler Excel poi apache org 加密

问题:如果你用名称管理的话,在你读取名称管理器的信息后,如果中途读取数据的时间过长,然后后面就是输出数据了。这个时候代码就会报错。

java.lang.RuntimeException
java.lang.RuntimeException: org.apache.poi.POIXMLException: org.apache.poi.openxml4j.exceptions.InvalidFormatException: Package should contain a content type part [M1.13]
	at com.hfplm.customization.export.history.HFBatchVersionExportHandler.export(HFBatchVersionExportHandler.java:334)
	at com.hfplm.customization.export.history.HFBatchVersionExportHandler.access$6(HFBatchVersionExportHandler.java:308)
	at com.hfplm.customization.export.history.HFBatchVersionExportHandler$1.run(HFBatchVersionExportHandler.java:225)
Caused by: org.apache.poi.POIXMLException: org.apache.poi.openxml4j.exceptions.InvalidFormatException: Package should contain a content type part [M1.13]
	at org.apache.poi.util.PackageHelper.open(PackageHelper.java:41)
	at org.apache.poi.xssf.usermodel.XSSFWorkbook.<init>(XSSFWorkbook.java:204)
	at com.hfplm.customization.export.history.HFBatchVersionExportHandler.export(HFBatchVersionExportHandler.java:315)
	... 2 more
Caused by: org.apache.poi.openxml4j.exceptions.InvalidFormatException: Package should contain a content type part [M1.13]
	at org.apache.poi.openxml4j.opc.ZipPackage.getPartsImpl(ZipPackage.java:178)
	at org.apache.poi.openxml4j.opc.OPCPackage.getParts(OPCPackage.java:662)
	at org.apache.poi.openxml4j.opc.OPCPackage.open(OPCPackage.java:269)
	at org.apache.poi.util.PackageHelper.open(PackageHelper.java:39)
	... 4 more

分析报错原因:

  首先是读取名称管理器那里,已经需要一次输入流了。后面虽然关闭了,但是加密机器的原理应该是,扫描到了这个文件有过一次读取后,就会进行加密。

后面你再进行数据输出时,又进行了一次输入流的读取。这个时候又会报错。

  注意:如果你的读取名称管理器的输入流时间----》中间处理数据----》再读取输入流。如果中间的处理数据的时间足够短,就不会出现报错的情况。我想是因为机器也是需要一定的时间进行扫描的。

 

解决办法:解决办法其实很简单。就是你在读取完名称管理器后,把XSSFWorkbook对象返回取,因为后面你存数据的时候,也是需要这个对象的,而不是重新需要输入流。

public static Map<String, Object> getNameMap2(File file){
	 Map<String,Object> objectMap = new HashMap<>();
	 Map<String, int[]> nameMap = null;
	 FileInputStream inputStream = null;
	 XSSFWorkbook workbook = null;
	 try {
		inputStream = new FileInputStream(file);
		workbook = new XSSFWorkbook(inputStream);
		inputStream.close();
	 } catch (Exception e) {
			// TODO Auto-generated catch block					
		 e.printStackTrace();
	 }
	 try{
		 nameMap = ExcelUtil.getnamesAt(workbook);
		 objectMap.put("nameMap", nameMap);
		 objectMap.put("workbook", workbook);
	 }catch(Exception e) {
		 e.printStackTrace();
		 MSG.systemErrorinfo(e);
	 }
	 return objectMap;
 }

  

 

标签:java,管理器,HFBatchVersionExportHandler,Excel,poi,apache,org,加密
From: https://www.cnblogs.com/wwssgg/p/16869822.html

相关文章

  • 图片视频二进制流base64加密
    一:读取图片或者视频,转换二进制流,进行Base64加密 @PostMapping("/base64Encoder")publicStringBuilderchangeImageTobase64(StringimageFilePath){......
  • jmeter事务管理器
    逻辑事务器,将一个操作产生的请求放在一起if控制器,当条件满足时执行if控制器${__groovy("${msg}"=="不允许重复挂号,请检查接诊列表是否有初诊或者复诊!")} ......
  • 1.0 新建VSTO项目 并使用Excel880VSTO框架改善编程体验
    小目标:VSTO新建Excel插件项目,并使用VSTO880框架改善编码体验如何创建全新的VSTO插件项目注意项目目录尽量保持和我的教程目录一致设置在D:\VSTO880\Project注意框架版......
  • NVM: npm的包管理器
    NVM:npm的包管理器其实许久前就像写这个模块了,只是之前使用后又搁置了,今天下项目时node版本不一致,才想起记录nvm下载地址:Releases·coreybutler/nvm-windows·G......
  • Excel VBA中ADO连接mysql数据库报错:no database selected 解决方案
    几天翻到一个以前连接mysql数据库的Excelvba文件,试了一下,居然链接成功,但是执行sql的时候一直报错说什么nodatabaseselected百度谷歌了老半天,终于找到了解决方案,其......
  • C#从大量数据的DataTable高效率快速导出到Excel
    using Microsoft.Office.Interop.Excel;using System.Runtime.InteropServices;  //dt:从数据库读取的数据;file_name:保存路径;sheet_name:表单名称private void Da......
  • 爱国者256G加密U优盘二次恢复之解密及财务账套sybase数据库修复
    ​这是今年以来难度最大的U盘数据恢复案例,U盘是爱国者256G的,联系我们之前已经被多家公司处理过,据说还刷过固件,但最终都恢复失败。爱国者这种128、256G的大容量U盘我们有很多......
  • 爱国者256G加密U优盘二次恢复之解密及财务账套sybase数据库修复
    这是今年以来难度最大的U盘数据恢复案例,U盘是爱国者256G的,联系我们之前已经被多家公司处理过,据说还刷过固件,但最终都恢复失败。爱国者这种128、256G的大容量U盘我们有很多......
  • JAVA MD5加密工具类
     importjava.io.UnsupportedEncodingException;importjava.security.MessageDigest;importjava.security.NoSuchAlgorithmException;/***@Author:JCccc*@CreateTim......
  • 不试不知道,Excel还能这么玩!
    "IT有得聊”是机械工业出版社旗下IT专业资讯和服务平台,致力于帮助读者在广义的IT领域里,掌握更专业、实用的知识与技能,快速提升职场竞争力。 Excel虽然是一个表格工具,但是,作......