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

发布于 2021-11-27 09:23:25 字数 1436 浏览 683 评论 1

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)


如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。

评论(1

离不开的别离 2021-11-27 12:31:05
HSSFWorkbook wb = 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");
		OutputStream ouputStream = response.getOutputStream();
		wb.write(ouputStream);
		ouputStream.flush();
		ouputStream.close();
	@Override
	public HSSFWorkbook export2Excel(Date dateFrom, Date dateTo,
			String workstation) {

		String[] header = { "日期时间", "工作站", "作业员", "折光仪读数", "备注" };

		HSSFWorkbook wb = new HSSFWorkbook();
		HSSFSheet sheet = wb.createSheet("CCT");
		HSSFRow row = sheet.createRow((int) 0);
		HSSFCellStyle style = wb.createCellStyle();
		style.setAlignment(HSSFCellStyle.ALIGN_CENTER);

		List<Cct> list = getAllWithMultiCondition(dateFrom, dateTo, workstation);

		for (int i = 0; i < header.length; i++) {
			HSSFCell cell = row.createCell(i);
			cell.setCellValue(header[i]);
			cell.setCellStyle(style);
			sheet.autoSizeColumn(i);
		}

		for (int i = 0; i < list.size(); i++) {
			row = sheet.createRow(i + 1);
			Cct c = 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());
		}
		return wb;
	}

~没有更多了~
我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
原文