Copy
if ($csv == 'csv'){ $fr_date = date_conv($fr_date); $to_date = date_conv($to_date); $sql = " SELECT a.od_id, od_b_zip1, od_b_zip2, od_b_addr1, od_b_addr2, od_b_addr3, od_b_addr_jibeon, od_b_name, od_b_tel, od_b_hp, b.it_name, ct_qty, b.it_id, a.od_id, od_memo, od_invoice, b.ct_option, b.ct_send_cost, b.it_sc_type FROM {$g5['g5_shop_order_table']} a, {$g5['g5_shop_cart_table']} b where a.od_id = b.od_id "; if ($case == 1) // 출력기간 $sql .= " and a.od_time between '$fr_date 00:00:00' and '$to_date 23:59:59' "; else // 주문번호구간 $sql .= " and a.od_id between '$fr_od_id' and '$to_od_id' "; if ($ct_status) $sql .= " and b.ct_status = '$ct_status' "; $sql .=" order by od_time asc, b.it_id, b.io_type, b.ct_id "; $result = sql_query($sql); $cnt = @mysql_num_rows($result); if (!$cnt) alert("출력할 내역이 없습니다."); /*================================================================================ php_writeexcel http://www.bettina-attack.de/jonny/view.php/projects/php_writeexcel/ =================================================================================*/ include_once(G5_LIB_PATH.'/Excel/php_writeexcel/class.writeexcel_workbook.inc.php'); include_once(G5_LIB_PATH.'/Excel/php_writeexcel/class.writeexcel_worksheet.inc.php'); $fname = tempnam(G5_DATA_PATH, "tmp-orderlist.xls"); $workbook = new writeexcel_workbook($fname); $worksheet = $workbook->addworksheet(); // Put Excel data $data = array('묶음번호', '송장번호', '업체주문번호\r\n(지마켓체결번호)', '전자상거래구분', '통관지정업체지정번호', '일반/목록', '발송자 성명(영어)', '발송자 영문주소', '발송자 전화번호', '수취인 성명(한글)', '주민등록번호(일반통관시필수}', '우편번호', '주소', '일반전화\r\n(없을시휴대전화기입)', '핸드폰', '무게(lbs)', '박스갯수', '배송시요청사항\r\n(한국현대택배)', '작업시요청사항\r\n(미국현대택배)', '상품명', '브랜드', '사이즈(식품,영양제등)', '색상', '수량', '단가', '표준품명', '관세발생시 부담', '상품이미지', '상품 URL', '오더번호', 'SHIPPING NAME', '고객아이디', '개인사서함번호', '배송사', 'TRACKING#' ); $data = array_map('iconv_euckr', $data); $col = 0; foreach($data as $cell) { $worksheet->write(0, $col++, $cell); } $save_it_id = ''; for($i=1; $row=sql_fetch_array($result); $i++) { if($save_it_id != $row['it_id']) { // 합계금액 계산 $sql = " select SUM(IF(io_type = 1, (io_price * ct_qty), ((ct_price + io_price) * ct_qty))) as price, SUM(ct_qty) as qty from {$g5['g5_shop_cart_table']} where it_id = '{$row['it_id']}' and od_id = '{$row['od_id']}' "; $sum = sql_fetch($sql); switch($row['ct_send_cost']) { case 1: $ct_send_cost = '착불'; break; case 2: $ct_send_cost = '무료'; break; default: $ct_send_cost = '선불'; break; } // 조건부무료 if($row['it_sc_type'] == 2) { $sendcost = get_item_sendcost($row['it_id'], $sum['price'], $sum['qty'], $row['od_id']); if($sendcost == 0) $ct_send_cost = '무료'; } $save_it_id = $row['it_id']; $ct_send_cost = iconv_euckr($ct_send_cost); } $row = array_map('iconv_euckr', $row); $worksheet->write($i, 0, ''); $worksheet->write($i, 1, ''); $worksheet->write($i, 2, ''); $worksheet->write($i, 3, 'A'); $worksheet->write($i, 4, ''); $worksheet->write($i, 5, '목록통관'); $worksheet->write($i, 6, 'NEXTGENBOWLING INC. (WWW.NEXTGENBOWLING.COM)'); $worksheet->write($i, 7, '9110 UNION PARK WAY SUITE 100, ELK GROVE CA 95624'); $worksheet->write($i, 8, '209-471-2149'); $worksheet->write($i, 9, $row['od_b_name']); $worksheet->write($i, 10, ''); $worksheet->write($i, 11, ' '.$row['od_b_zip1'].$row['od_b_zip2']); $worksheet->write($i, 12, print_address($row['od_b_addr1'], $row['od_b_addr2'], $row['od_b_addr3'], $row['od_b_addr_jibeon'])); $worksheet->write($i, 13, ' '.$row['od_b_hp']); $worksheet->write($i, 14, ' '.$row['od_b_hp']); $worksheet->write($i, 15, ''); $worksheet->write($i, 16, '1'); $worksheet->write($i, 17, $row['od_memo']); $worksheet->write($i, 18, ''); $worksheet->write($i, 19, $row['it_name']); $worksheet->write($i, 20, ''); $worksheet->write($i, 21, ''); $worksheet->write($i, 22, ''); $worksheet->write($i, 23, $row['ct_qty']); $worksheet->write($i, 24, $row['ct_price']); $worksheet->write($i, 25, '기타스포츠용품'); $worksheet->write($i, 26, '수취인'); $worksheet->write($i, 27, ''); $worksheet->write($i, 28, ''); $worksheet->write($i, 29, ''); $worksheet->write($i, 30, ''); $worksheet->write($i, 31, ''); $worksheet->write($i, 32, ''); $worksheet->write($i, 33, ''); $worksheet->write($i, 34, ''); } $workbook->close(); header("Content-Type: application/x-msexcel; name=\"Hyundai_orderlist-".date("ymd", time()).".xls\""); header("Content-Disposition: inline; filename=\"Hyundai_orderlist-".date("ymd", time()).".xls\""); $fh=fopen($fname, "rb"); fpassthru($fh); unlink($fname); exit;}
변환되서 나오는 sheet 자체를 필요에 맞게 수정을했습니다.
엑셀로 다운로드시 $data = array 로 지정한 제목부분과 $row를 통해서 호출하는 한글은
전부 정상적으로 표시가 되고 있습니다...
$worksheet->write($i, 5, '목록통관');
$worksheet->write($i, 25, '기타스포츠용품');
$worksheet->write($i, 26, '수취인');
이 3개 항목에 대해서만 한글로 표시가 되지 않고 깨져요
header("Content-Type: application/x-msexcel; name=\"Hyundai_orderlist-".date("ymd", time()).".xls\"");
이부분에 charset 도 넣어봤지만 깨지네요...
혹시 방법이 있으시면 도움 부탁드립니다.
|
답변 1개
채택된 답변
+20 포인트
10년 전
한글의 경우 아래코드처럼 euc-kr 로 변환해 주셔야 합니다.
Copy
$worksheet->write($i, 5, iconv_euckr('목록통관'));
답변을 작성하려면 로그인이 필요합니다.