반응형
Public ActionForward Reg(ActionMapping mapping, ActionForm form, HttpServletRequest request, HttpServletResponse response)

System.out.println("mapping============= " + mapping)

FormFile[] formFile = (FormFile[]) htmlForm.getFiles();
//폼에서 파일 파라미터


If (formFile != null && formFile[0] != null) {

POIFSFileSystem filein = new POIFSFileSystem(formFile[0].getInputStream());


HSSFWorkbook wb = new HSSFWorkbook(filein);


HSSFSheet ws = wb.getSheetAt(0);


For (int i = 1; i < 1000; i++) {


Row row = ws.getRow(i);

If( row ==null) continue;



For( int j =0; j < 1; j++) {

If( row.getCell( j) ==null) continue;


try {

//셀 타입 체크


If( row.getCell( j).getCellType() ==Cell.CELL_TYPE_STRING) {
row.getCell( j).getStringCellValue();
}

Else{

String.valueOf((int) row.getCell( j).getNumericCellValue();
}


} catch(Exception e){

}

}// end for j
}// end for i

}












반응형
반응형


HTML 은 그냥 xls로 확장자만 변환하여 다운받게 하였더니

액셀 에서 읽을때 오류가 발생... web페이지로 인식하는듯..


그래서 poi 이용 다운로드 찾아봄...


1. 서블릿 예제 입니다.

response.setContentType("application/vnd.ms-excel");
response.setHeader("Content-Disposition", "attachment; filename=filename.xls");
HSSFWorkbook workbook = new HSSFWorkbook();
// ...
// Now populate workbook the usual way.
// ...
workbook.write(response.getOutputStream()); // Write workbook to response.
workbook.close();


2. JSP 예제 입니다.

<%@page import="org.apache.poi.hssf.usermodel.*" %><%@page import="java.io.*" %><%

// create a small spreadsheet
HSSFWorkbook wb = new HSSFWorkbook();
HSSFSheet sheet = wb.createSheet();
HSSFRow row = sheet.createRow(0);
HSSFCell cell = row.createCell(0);
cell.setCellValue("Some text");

// write it as an excel attachment
ByteArrayOutputStream outByteStream = new ByteArrayOutputStream();
wb.write(outByteStream);
byte [] outArray = outByteStream.toByteArray();
response.setContentType("application/ms-excel");
response.setContentLength(outArray.length);
response.setHeader("Expires:", "0"); // eliminates browser caching
response.setHeader("Content-Disposition", "attachment; filename=testxls.xls");
OutputStream outStream = response.getOutputStream();
outStream.write(outArray);
outStream.flush();

%>

출처

http://okky.kr/article/279848

반응형

+ Recent posts