添加链接
link管理
链接快照平台
  • 输入网页链接,自动生成快照
  • 标签化管理网页链接

之前我是这样写的

/*      ZipEntry zipEntry = new ZipEntry(scoreTaskEntity.getTeachingClassName() +i+ ".xls");
      zipOut.putNextEntry(zipEntry);
      workBook.write(zipOut);*/
      //zipOut.closeEntry();

第二次循环到 workBook.write(zipOut)时就会报流已关闭的问题:

后来在网上搜索发现

XSSFWorkbook的write()方法传去MemoryStream对象后,会自动关闭传入的参数,导致再次使用putNextEntry()方法是报错Stream closed

解决方法:
将XSSFWorkbook转换成ByteArrayOutputStream,用ByteArrayOutputStream对象将流写入zip对象中

即将以上代码改为

ZipEntry entry = new ZipEntry(scoreTaskEntity.getTeachingClassName()+ ".xls");
zipOut.putNextEntry(entry);
ByteArrayOutputStream bos = new ByteArrayOutputStream();
workBook.write(bos);
bos.writeTo(zipOut);

问题完美解决

之前我是这样写的/* ZipEntry zipEntry = new ZipEntry(scoreTaskEntity.getTeachingClassName() +i+ ".xls"); zipOut.putNextEntry(zipEntry); workBook.write(zipOut);*/ //zipOut.closeEntry()... # 【 poi -***.jar中文文档. zip 】 中包含: 中文文档:【 poi -***-javadoc-API文档-中文(简体)版. zip 】 jar包下载地址:【 poi -***.jar下载地址(官方地址+国内镜像地址).txt】 Maven依赖:【 poi -***.jar Maven依赖信息(可用于项目pom.xml).txt】 Gradle依赖:【 poi -***.jar Gradle依赖信息(可用于项目build.gradle).txt】 源代码下载地址:【 poi -***-sources.jar下载地址(官方地址+国内镜像地址).txt】 # 本 文件 关键字: poi -***.jar中文文档. zip ,java, poi -***.jar,org.apache. poi , poi ,***,jar包,Maven,第三方jar包,组件,开源组件,第三方组件,Gradle,apache,中文API文档,手册,开发手册,使用手册,参考手册 # 使用方法: 解压 【 poi -***.jar中文文档. zip 】,再解压其中的 【 poi -***-javadoc-API文档-中文(简体)版. zip 】,双击 【index.html】 文件 ,即可用浏览器打开、进行查看。 # 特殊说明: ·本文档为人性化翻译,精心制作,请放心使用。 ·只翻译了该翻译的内容,如:注释、说明、描述、用法讲解 等; ·不该翻译的内容保持原样,如:类名、方法名、包名、类型、关键字、代码 等。 # 温馨提示: (1)为了防止解压后路径太长导致浏览器无法打开,推荐在解压时选择“解压到当前 文件 夹”(放心,自带 文件 夹, 文件 不会散落一地); (2)有时,一套Java组件会有 多个 jar,所以在下载前,请仔细阅读本篇描述,以确保这就是你需要的 文件 ; # Maven依赖: <dependency> <groupId>org.apache. poi </groupId> <artifactId> poi </artifactId> <version>***</version> </dependency> # Gradle依赖: Gradle: implementation group: 'org.apache. poi ', name: ' poi ', version: '***' Gradle (Short): implementation 'org.apache. poi : poi :***' Gradle (Kotlin): implementation("org.apache. poi : poi :***") # 含有的 Java package(包)(此处仅列举3个): org.apache. poi org.apache. poi .common org.apache. poi .common.usermodel ...... # 含有的 Java class(类)(此处仅列举3个): org.apache. poi .EmptyFileException org.apache. poi .EncryptedDocumentException org.apache. poi .OldFileFormatException ......
input = new FileInput Stream (fileName); Work book wb = ( Work book ) (isExcel2003 ? new HSSF Work book (input) : new XSSF Work book (fileName)); 上面的这个写法input不能 clo se以及删除 下面这种写法即可
1.有 问题 的代码 //根据临时的 zip 压缩 包路径,创建 zip 文件 File zip = new File( zip FilePath);         File OutputStream fos = null; Zip OutputStream zos = null;         try {             if (! zip .exists()){
HSSF Work book work Book = (HSSF Work book ) xlsTransformer.transformXLS(is, map); HSSFSheet sheet = work Book .getSheetAt(0); if(StringUtils.isNoneBlank(imagePath)){//导出照片 // 将图片以字节流的方式输入输出 人员照片 //String picture = "D:/Users/dongchuang/Downloads/uploader/userfiles/1/files/3af28628-5b01-4707-a5c0-7f8e9b46c276.PNG"; String picture=Global.getConfig("userfiles.ba sed ir")+imagePath; ByteArray OutputStream bos = new ByteArray OutputStream (); BufferedImage BufferImg = ImageIO.read(new File(picture)); ImageIO. write (BufferImg, imageType, bos); // public HSSFClientAnchor(int dx1,int dy1,int dx2,int dy2,short // col1,int row1,short col2,int row2) //(在起始单元格的X坐标0-1023,Y的坐标0-255,在终止单元格的X坐标0-1023,Y的坐标0-255,起始单元格列数,行数,终止单元格列数,行数)   HSSFClientAnchor anchor = new HSSFClientAnchor(180, 90, 870,130, (short) 18, 3, (short) 19, 6); HSSFPatriarch patriarch = sheet.createDrawingPatriarch(); patriarch.createPicture(anchor, work Book .addPicture(bos.toByteArray(), work Book .PICTURE_TYPE_JPEG)); //合并单元格 sheet.addMergedRegion(new CellRangeAddress(11,11+sqHzxxById.getSqGxryList().size(),0,0));//主要关系人员那个合并
def save_data(predicted_flow, path): work book = xlwt. Work book () data_sheet = work book .add_sheet('Sheet1') # style = xlwt.easyxf('font:height 240, color-index red, bold
work book .save()是Apache POI 的jar包中的一个功能。Apache POI 是用于读写Microsoft Office格式 文件 的Java库。其中包括HSSF(用于读写Excel 97-2003格式 文件 )、XSSF(用于读写Excel 2007及以上格式 文件 )、HWPF(用于读写Word 97-2003格式 文件 )、XWPF(用于读写Word 2007及以上格式 文件 )、HSLF(用于读写Power Poi nt 97-2003格式 文件 )和XSLF(用于读写Power Poi nt 2007及以上格式 文件 )等各种组件。 work book .save()功能位于HSSF和XSSF组件中,分别用于保存Excel 97-2003格式 文件 和Excel 2007及以上格式 文件 。在使用 work book .save()前,需要先使用 work book 对象 进行Excel 文件 的读取或创建。在保存之前,可以使用各种方法对Excel 文件 进行编辑或添加内容。最后在执行 work book .save()方法后,Excel 文件 将被保存到指定路径或输入流中。