开发者社区 问答 正文

java poi 创建新 excel写入的时候报错?报错

String filePath ="FILES\\" +filename+ ".xls";
	    	   File file = new File(filePath);
	    	   FileOutputStream out = new FileOutputStream(filePath);
	    	   
//	    	   file = new File("filepath location");
     	           FileInputStream fis=new FileInputStream(file.getAbsolutePath());

	    	   
	    	  String[] test = (String [])ExcelInfo.toArray(new String[0]);
	         //创建excel文件对象  
	          HSSFWorkbook wb = new HSSFWorkbook(fis);
//	          HSSFWorkbook wb = new HSSFWorkbook();
	          //创建一个张表  
	          HSSFSheet sheet = wb.getSheetAt(0);

我先创建一个excel,然后写入的时候运行程序报错 帮忙看下  ,错误:

java.io.IOException: Unable to read entire header; 0 bytes read; expected 512 bytes
at org.apache.poi.poifs.storage.HeaderBlock.alertShortRead(HeaderBlock.java:226)
at org.apache.poi.poifs.storage.HeaderBlock.readFirst512(HeaderBlock.java:207)
at org.apache.poi.poifs.storage.HeaderBlock.<init>(HeaderBlock.java:104)
at org.apache.poi.poifs.filesystem.POIFSFileSystem.<init>(POIFSFileSystem.java:138)
at org.apache.poi.hssf.usermodel.HSSFWorkbook.<init>(HSSFWorkbook.java:327)
at org.apache.poi.hssf.usermodel.HSSFWorkbook.<init>(HSSFWorkbook.java:308)
at com.CreateFiles.Excel.write2003Excel(Excel.java:32)
at com.CreateFiles.FilesCreate.main(FilesCreate.java:145)


展开
收起
爱吃鱼的程序员 2020-06-14 20:58:44 958 分享 版权
1 条回答
写回答
取消 提交回答
  • https://developer.aliyun.com/profile/5yerqm5bn5yqg?spm=a2c6h.12873639.0.0.6eae304abcjaIB
    1. java.io.IOException:Unabletoreadentireheader;0bytesread;expected512bytes
    2. 从这里报错来看是你没有定义header。 EXCEL都需要头部的。
    3. 具体看以下例子。写得很详细了的。
    4. http://blog.csdn.net/evangel_z/article/details/7332535
    5.   String[] headers2 =  
    6.         {  "图书编号" ,  "图书名称" ,  "图书作者" ,  "图书价格" ,  "图书ISBN" ,  "图书出版社" ,  "封面图片"  }; 
    HSSFWorkbookwb=cctService.export2Excel(DateTimeParse.convertStr2Date(request.getParameter("q_date_from")),DateTimeParse.convertStr2Date(request.getParameter("q_date_to")),request.getParameter("q_workstation"));response.setContentType("application/vnd.ms-excel");response.setHeader("Content-disposition","attachment;filename=CCT.xls");OutputStreamouputStream=response.getOutputStream();wb.write(ouputStream);ouputStream.flush();ouputStream.close(); @OverridepublicHSSFWorkbookexport2Excel(DatedateFrom,DatedateTo,Stringworkstation){String[]header={"日期时间","工作站","作业员","折光仪读数","备注"};HSSFWorkbookwb=newHSSFWorkbook();HSSFSheetsheet=wb.createSheet("CCT");HSSFRowrow=sheet.createRow((int)0);HSSFCellStylestyle=wb.createCellStyle();style.setAlignment(HSSFCellStyle.ALIGN_CENTER);List<Cct>list=getAllWithMultiCondition(dateFrom,dateTo,workstation);for(inti=0;i<header.length;i++){HSSFCellcell=row.createCell(i);cell.setCellValue(header[i]);cell.setCellStyle(style);sheet.autoSizeColumn(i);}for(inti=0;i<list.size();i++){row=sheet.createRow(i+1);Cctc=list.get(i);row.createCell(0).setCellValue(c.getDatetime());row.createCell(1).setCellValue(c.getWorkstation());row.createCell(2).setCellValue(c.getOperator());row.createCell(3).setCellValue(c.getValue());row.createCell(4).setCellValue(c.getRemark());}returnwb;}





    2020-06-14 20:58:59
    赞同 展开评论
问答分类:
问答地址: