Excel 보고서 읽기 jxl.read.biff.BiffException: Unable to recognize OLE stream
3149 단어 exception
jxl.read.biff.BiffException: Unable to recognize OLE stream
at jxl.read.biff.CompoundFile.<init>(CompoundFile.java:116)
at jxl.read.biff.File.<init>(File.java:127)
at jxl.Workbook.getWorkbook(Workbook.java:221)
at jxl.Workbook.getWorkbook(Workbook.java:198)
가져온 excel은 jxl이 인정한 표준적인 OLE 파일이 아니지만 열려 있는 것은 Excle로 보입니다. 그리고 이 Excel을 다시 Excel로 저장했습니다. 기본적인 저장 형식은'단일 파일 웹 페이지'(EditPlus를 통해 Excle을 열면 웹 파일로 보임)입니다. 그리고 그 보안 형식을 Microsoft Office Excel로 수정해서 가져오기를 저장하면 정확하게 가져올 수 있습니다.
또 다른 가능한 원인은 excel의 버전 문제이다
그러나 다른 이름으로 저장하지 않고 가져올 수도 있습니다.
1. Excel 읽기는 텍스트로 읽기
2. Excel을 내보내고 jxl에 맞는 방식으로 내보내기
public void outPutExcel(List<InvoiceRequisitionSo> result,HttpServletResponse response ){
OutputStream os = null;
try{
os = response.getOutputStream();
}catch (IOException el){
}
response.reset();
response.setHeader("Content-disposition", "attachment; filename=InvoiceRequisitionListToExcel.xls");
response.setContentType("application/msexcel");
WritableWorkbook wwb=null;
WritableSheet ws=null;
WritableCellFormat cellFormat = new WritableCellFormat();
WritableCellFormat cellFormatContent = new WritableCellFormat();
WritableFont font= new WritableFont(WritableFont.createFont(" "),10, WritableFont.NO_BOLD);
WritableFont font1= new WritableFont(WritableFont.createFont(" "),10, WritableFont.NO_BOLD);
try{
wwb = Workbook.createWorkbook(os);
ws = wwb.createSheet(" ", 0);
font.setColour(Colour.WHITE);
WritableCellFormat cellFormatContentt = new WritableCellFormat(font);
font1.setColour(Colour.RED);
WritableCellFormat cellFormatContentred = new WritableCellFormat(font1);
ws.getSettings().setDefaultColumnWidth(18);
//
cellFormat.setBackground(Colour.GRAY_25);
cellFormat.setBorder(Border.ALL, BorderLineStyle.THIN, Colour.BLACK);
cellFormatContent.setBorder(Border.ALL, BorderLineStyle.THIN, Colour.BLACK);
cellFormatContentt.setBorder(Border.ALL, BorderLineStyle.THIN, Colour.BLACK);
int i = 0;
for (InvoiceRequisitionSo so : result) {
ws.addCell(new Label(0,i,so.getInvoice(),cellFormatContentred ));
//
ws.mergeCells(1, i , 2, i );
ws.addCell(new Label(1, i, so.getEno(), cellFormatContent));
i++;
}
}catch (Exception e){
} finally{
try {
wwb.write();
wwb.close();
os.close();
} catch (Exception e) {
}
}
}
이 내용에 흥미가 있습니까?
현재 기사가 여러분의 문제를 해결하지 못하는 경우 AI 엔진은 머신러닝 분석(스마트 모델이 방금 만들어져 부정확한 경우가 있을 수 있음)을 통해 가장 유사한 기사를 추천합니다:
Exception Class에서 에러 코드 해석 ~초기초편~직장에서 C# 프로젝트가 내뿜는 오류 코드를 구문 분석하고 오류의 위치를 확인하기 위해 Exception class를 활용할 수 있었습니다. 지금까지 Exception Class 에 대해서 별로 파악할 수 없었기 때...
텍스트를 자유롭게 공유하거나 복사할 수 있습니다.하지만 이 문서의 URL은 참조 URL로 남겨 두십시오.
CC BY-SA 2.5, CC BY-SA 3.0 및 CC BY-SA 4.0에 따라 라이센스가 부여됩니다.