UploadFormExcelEx.jsp <%@ page contentType="text/html; charset=euc-kr" language="java" errorPage=""%> <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd"> <html xmlns="http://www.w3.org/1999/xhtml"> <head> <meta http-equiv="Content-Type" content="text/html; charset=euc-kr" /> <title>Untitled Document</title> <script> function checkForm() { if (formUpload.file1.value == "") { alert("파일을 업로드해주세요."); return false; } else if(!checkFileType(formUpload.file1.value)) { alert("엑셀파일만 업로드 해주세요."); return false; } return true; } function checkFileType(filePath){ var fileLen = filePath.length; var fileFormat = filePath.substring(fileLen - 4); fileFormat = fileFormat.toLowerCase(); if (fileFormat == ".xls"){ return true; } else{ return false; } } </script> </head> <body> <form name="formUpload" action="UploadActionExcelEx.jsp" method="POST" enctype="multipart/form-data" onsubmit="return checkForm(file1)"> <input type="file" name="file1" size="10" /> <br /> <input type="submit" value="Upload" size="10" /> </form> </body> </html> UploadActionExcelEx.jsp <%@page contentType="text/html; charset=euc-kr" language="java" errorPage=""%> <%@page import="java.util.*,java.io.* ,com.oreilly.servlet.MultipartRequest ,com.oreilly.servlet.multipart.DefaultFileRenamePolicy ,jxl.*"%> <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd"> <html xmlns="http://www.w3.org/1999/xhtml"> <head> <meta http-equiv="Content-Type" content="text/html; charset=euc-kr" /> <title>Untitled Document</title> </head> <body> <% String savePath = "/home/hosting_users/myzle3/www/Jsp/Upload"; // 저장할 디렉토리 int sizeLimit = 30 * 1024 * 1024 ; // 용량제한 String formName = ""; String fileName = ""; Vector vFileName = new Vector(); Vector vFileSize = new Vector(); String[] aFileName = null; String[] aFileSize = null; long fileSize = 0; MultipartRequest multi = new MultipartRequest(request, savePath, sizeLimit, "euc-kr", new DefaultFileRenamePolicy()); Enumeration formNames = multi.getFileNames(); while (formNames.hasMoreElements()) { formName = (String)formNames.nextElement(); fileName = multi.getFilesystemName(formName); if(fileName != null) { // 파일이 업로드 되면 fileSize = multi.getFile(formName).length(); vFileName.addElement(fileName); vFileSize.addElement(String.valueOf(fileSize)); //out.println("파일명 : " + fileName); //out.println("사이즈 : " + fileSize); //out.println("<br />"); } } aFileName = (String[])vFileName.toArray(new String[vFileName.size()]); aFileSize = (String[])vFileSize.toArray(new String[vFileSize.size()]); %> <% Workbook workbook = Workbook.getWorkbook(new File(savePath + "/" + fileName)); Sheet sheet = workbook.getSheet(0); int col = sheet.getColumns(); // 시트의 컬럼의 수를 반환한다. int row = sheet.getRows(); // 시트의 열의 수를 반환한다. %> <HTML> <HEAD> <TITLE>Excel Document Reader</TITLE> </HEAD> <BODY> <table border="1"> <% int cellLen = 0; for (int i = 0 ; i < row ; i++) { // Record를 읽어 배열로 저장 Cell cell [] = sheet.getRow(i); cellLen = cell.length; // ArrayIndexOutOfBoundsException을 막기위해. out.println("<tr>"); for (int j = 0; j <col ; j++) { // 레코더의 전체 컬럼수 만큼 반복 if (j < cellLen && cell[j].getContents() != "") { out.println("<td>"+cell[j].getContents()+"</td>"); } else { out.println("<td> </td>"); } // end of if } out.println("</tr>"); } // end of for %> </table> </BODY> </HTML>