########### JAVA ExcelSample #######################
import java.io.IOException;
import javax.servlet.ServletException;
import javax.servlet.http.HttpServlet;
import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;
import base.util.UdpLogger;
import jxl.Workbook;
import jxl.write.WritableCellFormat;
import jxl.write.WritableSheet;
import jxl.write.WritableWorkbook;
public class ExcelSample extends HttpServlet {
public void doPost(HttpServletRequest req, HttpServletResponse res) throws ServletException, IOException {
excelTest(req, res);
}
public void doGet(HttpServletRequest req, HttpServletResponse res) throws ServletException, IOException {
excelTest(req, res);
}
/**
* Java Excel Api 월별 장부 엑셀로 출력하기
*/
public void excelTest(HttpServletRequest req, HttpServletResponse res) {
try {
UdpLogger.print("TEST PARAMS ==> " + req.getParameter("params"));
//WritableWorkbook workbook = Workbook.createWorkbook(new File("d:/myExcelFile.xls")); // 엑셀
WritableWorkbook workbook = Workbook.createWorkbook(res.getOutputStream());
WritableSheet sheet = workbook.createSheet("Sheet1", 0);
jxl.write.WritableCellFormat format= new WritableCellFormat();
jxl.write.WritableCellFormat format0= new WritableCellFormat();
format.setBackground(jxl.format.Colour.GRAY_25 );
format.setBorder(jxl.format.Border.ALL,jxl.format.BorderLineStyle.THIN );
format.setAlignment(jxl.format.Alignment.CENTRE);
format0.setBackground(jxl.format.Colour.WHITE );
format0.setBorder(jxl.format.Border.ALL,jxl.format.BorderLineStyle.THIN );
format0.setAlignment(jxl.format.Alignment.CENTRE);
sheet.setColumnView(0,8);
jxl.write.Label label =null;
jxl.write.Blank blank=null;
label = new jxl.write.Label(0,0,"결재란",format);
sheet.addCell(label);
label = new jxl.write.Label(1,0,"테스트",format);
sheet.addCell(label);
label = new jxl.write.Label(2,0,"결재일",format);
sheet.addCell(label);
label = new jxl.write.Label(3,0,"테스트",format);
sheet.addCell(label);
blank = new jxl.write.Blank(4,0,format0);
sheet.addCell(blank );
for(int h=1;h<51;h++) {
for(int i=0;i<10;i++) {
label = new jxl.write.Label(i, h, "("+i+","+h+")",format0);
sheet.addCell(label);
}
}
/* 엑셀파일 다운로드 설정 */
res.setContentType("text/html; charset=euc-kr");
res.setHeader("Content-Transfer-Encoding", "7bit");
if (req.getHeader("User-Agent").indexOf("MSIE 5.5") > -1) {
res.setHeader("Content-Disposition","filename=" + java.net.URLEncoder.encode("requestList.xls", "euc-kr") + ";");
} else {
res.setHeader("Content-Disposition","attachment; filename=" + new String("requestList.xls".getBytes("EUC-KR"), "8859_1") + ";");
}
// res.setHeader("Content-Length", "" +
// excelBook.toString().length());
res.setHeader("Content-Length", "");
/* 엑셀파일 다운로드 설정 */
workbook.write();
workbook.close();
} catch(Exception e) {
System.out.println(e);
}
}
}
########### Web.xml #######################
<servlet>
<servlet-name>MangeExcelServlet</servlet-name> <-- 서블릿 명
<servlet-class>management.crm.garden.MangeExcelServlet</servlet-class> <-- 서블릿 경로
</servlet>
<servlet-mapping>
<servlet-name>MangeExcelServlet</servlet-name>
<url-pattern>/excel</url-pattern> <-- Url partten
</servlet-mapping>
###### Flex 호출 ########################
ExternalInterface.call("excelTest","06"); <-- 어플리케이션 html 또는 jsp안에 excelTest Java Script
<form name="fm"> <-- 폼
<input type="hidden" name="params" value="">
</form>
<iframe name="excel_frame" width="0" height="0"> <-- iframe 창을 안띄우기 위한것