영카트 주문엑셀출력 문의

영카트 주문엑셀출력 문의

QA

영카트 주문엑셀출력 문의

본문

안녕하세요

 

영카트 기본소스 어드민페이지에서

 

쇼핑몰현황/기타에 있는

 

주문내역 출력이라는 기능을 사용해서 주문내역 엑셀을 출력하는데

 

xls 엑셀파일을 출력해서 윈도우 엑셀 프로그램에서 봤을때

 

셀 크기가 일정한데 더길게 할수있을까요?

주소 같은경우 길이가 긴데 셀크기가 작아서 출력할때마다 늘려야해서 좀 번거로운데

 

엑셀 받았을때부터 길이가 늘려져있으면 편할꺼같아서요

 

답변 좀 부탁드립니다.

 

 

--------

 

// MS엑셀 XLS 데이터로 다운로드 받음 


    $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 "; 
    $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("출력할 내역이 없습니다."); 


    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('우편번호', '주소', '이름', '전화1', '전화2', '상품명', '수량', '선택사항', '배송비', '상품코드', '주문번호', '운송장번호', '전하실말씀'); 
    $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, $row['od_b_zip1'].'-'.$row['od_b_zip2']); 
        $worksheet->write($i, 1, print_address($row['od_b_addr1'], $row['od_b_addr2'], $row['od_b_addr3'], $row['od_b_addr_jibeon'])); 
        $worksheet->write($i, 2, $row['od_b_name']); 
        $worksheet->write($i, 3, ' '.$row['od_b_tel']); 
        $worksheet->write($i, 4, ' '.$row['od_b_hp']); 
        $worksheet->write($i, 5, $row['it_name']); 
        $worksheet->write($i, 6, $row['ct_qty']); 
        $worksheet->write($i, 7, $row['ct_option']); 
        $worksheet->write($i, 8, $ct_send_cost); 
        $worksheet->write($i, 9, ' '.$row['it_id']); 
        $worksheet->write($i, 10, ' '.$row['od_id']); 
        $worksheet->write($i, 11, $row['od_invoice']); 
        $worksheet->write($i, 12, $row['od_memo']); 
    } 

    $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); 

    exit; 

?> 

소스가 이런식으로 되있는데 어떻게 수정을 하면 될까요? 

이 질문에 댓글 쓰기 :

답변 1


    $fname = tempnam(G5_DATA_PATH, "tmp-orderlist.xls");
    $workbook = new writeexcel_workbook($fname);
    $worksheet = $workbook->addworksheet();
    $worksheet->set_column(1,1, 50); ​ // 추가된 라인

 

set_column함수를 이용하시면 됩니다.

 

1,1,50 은 주소 컬럼이 있는 2번째 가로 폭을 50으로 한다.

 

첫번째와 두번째는

 

0,1,50 으로 하면 A,B컬럼의 가로 폭이 50으로 됩니다.

0,3,50으로 하면 A,B,C ...

 

답변을 작성하시기 전에 로그인 해주세요.
전체 28
QA 내용 검색

회원로그인

(주)에스아이알소프트 / 대표:홍석명 / (06211) 서울특별시 강남구 역삼동 707-34 한신인터밸리24 서관 1404호 / E-Mail: admin@sir.kr
사업자등록번호: 217-81-36347 / 통신판매업신고번호:2014-서울강남-02098호 / 개인정보보호책임자:김민섭(minsup@sir.kr)
© SIRSOFT