써먹는 웹개발

[Java]엑셀 다운로드 본문

웹개발/Java & Jsp

[Java]엑셀 다운로드

kmhan 2018. 4. 16. 00:10


728x90
반응형

202111
java 엑셀 다운로드
1. excelController
- 구분 및 데이터를 파라미터로 받아옴
2. excelService
- ExcelUtil 기반으로 엑셀 만들기
- front 또는 back에서 받아온 데이터를 엑셀 셀 각각의 위치에 맞게 입력한다.
- 엑셀 다운로드

201804
1. Js 소스 (엑셀 다운로드 버튼)

  excelDownload = function() {

//data load완료후

var pGridObj = $("#gridCustPri"), 

pFileName = moment().format('YYYYMMDDHHmmss') + "_custPriceMngt";


if(pGridObj.getGridParam("reccount") == 0) return;


for(var i=0;i<$("#gridCustPri").getDataIDs().length;i++){

$("#gridCustPri").jqGrid('saveRow',$("#gridCustPri").getDataIDs()[i]);

}

var params = {

param : $("#gridCustPri").getRowData(),

pfilename : pFileName

};

$.ajax({

    url: $HOST+"/excelMenuGrpDown",

cache: false,

    type: 'POST',

    contentType: "application/json",

    success: function() {    

    alert("엑셀 다운로드 완료되었습니다.");

            var ids = $("#gridCustPri").jqGrid('getDataIDs');

           

            // 거래처 공급 단가 input 

            for(i=0; i< ids.length; i++){

            $("#gridCustPri").jqGrid('editRow', ids[i], false);

            }

    },

    error: function(request, status, error){

    alert("code:" + request.status + "\n" + "message:" + request.responseText + "\n" + "error:" + error);

    },

    data: JSON.stringify(params)

  });

};




2. Java 소스

  static HSSFRow row;

static HSSFCell cell;


@RequestMapping(value = "/excelMenuGrpDown", method = {RequestMethod.POST})

@ResponseBody

public void insertorderitemdown(HttpServletRequest request, HttpSession session,

@RequestBody Map<String, Object> args) throws Exception {

HSSFWorkbook workbook = new HSSFWorkbook();

//Sheet명 설정

HSSFSheet sheet = workbook.createSheet("mySheet");


List<Map<String, Object>> param = (List<Map<String, Object>>) args.get("param");

String pfilename = (String)args.get("pfilename");

//출력 row 생성

row = sheet.createRow(0);

row.createCell(0).setCellValue("L5/UPN");

row.createCell(1).setCellValue("NAME");

row.createCell(2).setCellValue("Price Master 단가");

row.createCell(3).setCellValue("거래처 공급단가");

row.createCell(4).setCellValue("최근 수정일");


for (int i = 0; i < param.size(); i++) {

//출력 row 생성

row = sheet.createRow(i+1);

row.createCell(0).setCellValue((String)param.get(i).get("itemCd"));

row.createCell(1).setCellValue((String)param.get(i).get("itemNm"));

row.createCell(2).setCellValue((String)param.get(i).get("price"));

row.createCell(3).setCellValue((String)param.get(i).get("custPri"));

row.createCell(4).setCellValue((String)param.get(i).get("date"));

}

// 출력 파일 위치및 파일명 설정

FileOutputStream outFile;

try {

outFile = new FileOutputStream("D:\\"+pfilename+".xls");

workbook.write(outFile);

outFile.close();

System.out.println("파일생성 완료");

} catch (Exception e) {

e.printStackTrace();

}

}


728x90
반응형


Comments