我有excel文件,我想创建一个报告,但在尝试使用WorkbookFactory创建Workbook对象时,我收到此错误:
“您的InputStream既不是OLE2流,也不是OOXML流”
代码下方:
public void print() throws Exception {
Map beans = new HashMap();
beans.put("diffs", getObj().getDiffs());
beans.put("periodFrom", WsUtils.reformatDate(panel.getPeriod().getFROMDAT()));
beans.put("periodTo", WsUtils.reformatDate(panel.getPeriod().getTODAT()));
beans.put("actDate", getObj().getInfo().getRECONSDAT());
beans.put("userName", getObj().getInfo().getLOGIN());
beans.put("uvedName", getObj().getInfo().getFNAME());
beans.put("dictionaryManager", dictionaryManager);
InputStream is = new BufferedInputStream(getClass().getResourceAsStream("/templates/reconciliation.xls"));
XLSTransformer transformer = new XLSTransformer();
Workbook resultWorkbook = transformer.transformXLS(is, beans); //get error at this line
ByteArrayOutputStream os = new ByteArrayOutputStream();
resultWorkbook.write(os);
FacesUtils.writeFileToResponse("reconciliation_" + DateFormat.getDateTimeInstance().format(new Date()) + ".xls", "application/vnd.ms-excel", os.toByteArray());
is.close();
os.close();
}
我也在StackOverFlow中阅读了类似的问题,但对我没有帮助。
但有时报告创建成功,我不知道为什么,它发生了3-4次。