exl 내용물이 이상합니다.

exl 내용물이 이상합니다.

QA

exl 내용물이 이상합니다.

답변 3

본문

앞자리의 마지막 글자가 다음 내용에 자동으로 들어가고 이상한 깨진 문자가 들어가 있습니다.

3731116171_1595984781.166.png

 

include_once('./_common.php');

$sql = " select * 
           from {$g5['g5_shop_order_table']}
          where mb_id = '{$member['mb_id']}'
          order by od_id desc ";
$result = sql_query($sql);
$cnt = _num_rows($result);
if (!$cnt){
    alert("출력할 내역이 없습니다.");
}

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-inquirylist.xls");
$workbook = new writeexcel_workbook($fname);
$worksheet = $workbook->addworksheet();

// Put Excel data
$data = array('주문서번호', '주문일시', '상품명', '수량', '주문금액' ,'입금액', '미입금액', '상태', '주문자이름', '주문자전화번호', '주문자핸드폰', '주문자주소', '받으시는분이름', '받으시는분전화번호', '받으시는분핸드폰', '받으시는분주소');
$data = array_map('iconv_euckr', $data);

$col = 0;
foreach($data as $cell) {
    $worksheet->write(0, $col++, $cell);
}

$workbook->close();

header("Content-Type: application/x-msexcel; name=\"orderlist-".date("ymd", time()).".xls\"");
header("Content-Disposition: inline; filename=\"orderlist-".date("ymd", time()).".xls\"");
$fh=fopen($fname, "rb");
fpassthru($fh);
unlink($fname);

이 질문에 댓글 쓰기 :

답변 3


$head = array('주문서번호', '주문일시', '상품명', '수량', '주문금액' ,'입금액', '미입금액', '상태', '주문자이름', '주문자전화번호', '주문자핸드폰', '주문자주소', '받으시는분이름', '받으시는분전화번호', '받으시는분핸드폰', '받으시는분주소');
$data = array_map('iconv_euckr', $head);

로 바꿔보세요

위에 소스 걍 긁어서 실행해봤는데 잘됩니다

쿼리로 주문데이타를 가져와서 엑셀에 추가해주는 부분은 소스에 없는데 그 부분도 올려주세요

먼가 중복으로 write  하는거처럼 보입니다 

데이터 부분도 마찬가지입니다. 내용에 따라서 위가 같은 오류가 있는줄도 있고 없는줄도 있습니다.
$data = array('상품', '수량', '상태', '주문일' ,'입금액', '미입금', '주문금액', '주문서No', '주문자이름', '주문자주소', '주문자전화1', '주문자전화2', '받는사람이름', '받는사람주소', '받는사람전화1', '받는사람전화2');
이렇게 넣으면 또 정상으로 나옵니다.문자열짜르는 규칙에 문제가 있는것 같은데 특정한 규율이 없어서 확인이 안됩니다.

제가 위에 댓글 달아 드렷자나요
$data=array_map('iconv_euckr', $data) 이런식으로 자기 자신을 다시 할당하니까 문제가 생기는거에요
array_map 을 수행하는 변수랑 받을 변수를 다르게 선언하세요

// Put Excel data 바로위에 아래 내용이 빠졌네요? 괄호안 3번째 숫자는 엑셀 컬럼넓이입니다.

    $worksheet->set_column(0,0, 8);
    $worksheet->set_column(1,1, 16);
    $worksheet->set_column(2,2, 8);
    $worksheet->set_column(3,3, 8);
    $worksheet->set_column(4,4, 60);
.

.

.

    $worksheet->set_column(15,15, 60);

답변을 작성하시기 전에 로그인 해주세요.
QA 내용 검색
질문등록
전체 16,737
© SIRSOFT
현재 페이지 제일 처음으로