저장된 데이터를 엑셀 파일로 다운 받아줄 때

저장된 데이터를 엑셀 파일로 다운 받아줄 때

QA

저장된 데이터를 엑셀 파일로 다운 받아줄 때

본문

안녕하세요? 항상 도움을 받고 있습니다. 감사합니다.

DB 에서 <br /> 태그로 구분자를 준 것을 엑셀 파일로 다운 받을 때 줄바꿈으로 치환해서 다운을 받고 싶습니다. <br /> 를 \n 으로 치환을 했는데 그냥 띄워쓰기만 되더라고요. 어떻게 해야하나요? 항상 감사합니다. 

 

<?php

include_once('./_common.php');

echo '<meta charset="utf-8">';

 

$sql_common = " from {$g5['member_table']} ";

 

$sql_search = " where (1) ";

if ($stx) {

    $sql_search .= " and ( ";

    switch ($sfl) {

        case 'mb_point' :

            $sql_search .= " ({$sfl} >= '{$stx}') ";

            break;

        case 'mb_level' :

            $sql_search .= " ({$sfl} = '{$stx}') ";

            break;

        case 'mb_tel' :

        case 'mb_hp' :

            $sql_search .= " ({$sfl} like '%{$stx}') ";

            break;

        default :

            $sql_search .= " ({$sfl} like '{$stx}%') ";

            break;

    }

    $sql_search .= " ) ";

}

 

if (!$sst) {

    $sst = "mb_datetime";

    $sod = "desc";

}

 

$sql_order = " order by {$sst} {$sod} ";

 

$sql = " select * {$sql_common} {$sql_search} {$sql_order} ";

$result = sql_query($sql);

 

header("Content-Type: application/vnd.ms-excel");

header("Content-Type: application/x-msexcel");

header("Content-Disposition: attachment; filename=member.xls");

header("Content-Description: PHP4 Generated Data" );

//header("Content-charset=utf-8");

?>

 

<html>

<head>

<style>

.sty { font-family:굴림; font-size:12px;}

.sty0 { font-family:굴림; font-size:12px; text-align:center;}

.sty1 {mso-number-format:"\@";font-family:굴림; font-size:12px}

.sty2 {font-family:굴림; font-size:12px}

.sty3 {font-family:굴림; font-size:12px; color: #ff0000}

.title {font-family:굴림; font-size:12px; font-weight:600}

.title_s {font-family:굴림; font-size:16px}

</style>

</head>

<body bgcolor="#FFFFFF">

<table border="1" style="table-layout:fixed">

<tr align="center">    

    <td bgcolor="#CCFFCC">mb_id</td>

    <td bgcolor="#CCFFCC">mb_name</td>

    <td bgcolor="#CCFFCC">mb_nick</td>

    <td bgcolor="#CCFFCC">mb_email</td>

    <td bgcolor="#CCFFCC">mb_homepage</td>

    <td bgcolor="#CCFFCC">mb_level</td>

    <td bgcolor="#CCFFCC">mb_tel</td>

    <td bgcolor="#CCFFCC">mb_hp</td>

    <td bgcolor="#CCFFCC">extra_mb_hp</td>

    <td bgcolor="#CCFFCC">mb_adult</td>

    <td bgcolor="#CCFFCC">mb_zip</td>

    <td bgcolor="#CCFFCC">mb_addr1</td>

    <td bgcolor="#CCFFCC">mb_addr2</td>

    <td bgcolor="#CCFFCC">mb_addr3</td>

    <td bgcolor="#CCFFCC">mb_addr_jibeon</td>

    <td bgcolor="#CCFFCC">mb_recommend</td>

    <td bgcolor="#CCFFCC">mb_mailling</td>

    <td bgcolor="#CCFFCC">mb_sms</td>

    <td bgcolor="#CCFFCC">mb_open</td>

    <td bgcolor="#CCFFCC">mb_1</td>

    <td bgcolor="#CCFFCC">mb_2</td>

    <td bgcolor="#CCFFCC">mb_3</td>

    <td bgcolor="#CCFFCC">mb_4</td>

    <td bgcolor="#CCFFCC">mb_5</td>

    <td bgcolor="#CCFFCC">mb_6</td>

    <td bgcolor="#CCFFCC">mb_7</td>

    <td bgcolor="#CCFFCC">mb_8</td>

    <td bgcolor="#CCFFCC">mb_9</td>

    <td bgcolor="#CCFFCC">mb_10</td>

</tr>

 

<?php while($row=sql_fetch_array($result)) {

 // extra_mb_hp 필드의 값을 <br /> 태그를 Alt + Enter로 변경

 $extra_mb_hp = str_replace("<br />", "\n", $row['extra_mb_hp']);

 $extra_mb_hp = str_replace("\n", "\n", $extra_mb_hp); // 줄바꿈 문자로 두 번 변경

 

 // 엑셀에서 줄바꿈을 표시하려면 셀 내용에 Alt + Enter 키 조합을 포함

 $extra_mb_hp = str_replace("\n", "\r\n", $extra_mb_hp)

?>

    <tr>

        <td class="sty1"><?php echo $row['mb_id'];?></td>

        <td class="sty1"><?php echo $row['mb_name'];?></td>

        <td class="sty1"><?php echo $row['mb_nick'];?></td>

        <td class="sty1"><?php echo $row['mb_email'];?></td>

        <td class="sty1"><?php echo $row['mb_homepage'];?></td>

        <td class="sty1"><?php echo $row['mb_level'];?></td>

        <td class="sty1"><?php echo $row['mb_tel'];?></td>

        <td class="sty1"><?php echo $row['mb_hp'];?></td>

        <td class="sty1"><?php echo $extra_mb_hp; ?></td>

        <td class="sty1"><?php echo $row['mb_adult'];?></td>

        <td class="sty1"><?php echo $row['mb_zip1'];?><?php echo $row['mb_zip2'];?></td>

        <td class="sty1"><?php echo $row['mb_addr1'];?></td>

        <td class="sty1"><?php echo $row['mb_addr2'];?></td>

        <td class="sty1"><?php echo $row['mb_addr3'];?></td>

        <td class="sty1"><?php echo $row['mb_addr_jibeon'];?></td>

        <td class="sty1"><?php echo $row['mb_recommend'];?></td>

        <td class="sty1"><?php echo $row['mb_mailling'];?></td>

        <td class="sty1"><?php echo $row['mb_sms'];?></td>

        <td class="sty1"><?php echo $row['mb_open'];?></td>

        <td class="sty1"><?php echo $row['mb_1'];?></td>

        <td class="sty1"><?php echo $row['mb_2'];?></td>

        <td class="sty1"><?php echo $row['mb_3'];?></td>

        <td class="sty1"><?php echo $row['mb_4'];?></td>

        <td class="sty1"><?php echo $row['mb_5'];?></td>

        <td class="sty1"><?php echo $row['mb_6'];?></td>

        <td class="sty1"><?php echo $row['mb_7'];?></td>

        <td class="sty1"><?php echo $row['mb_8'];?></td>

        <td class="sty1"><?php echo $row['mb_9'];?></td>

        <td class="sty1"><?php echo $row['mb_10'];?></td>

    </tr>

<?php } ?>

    </table>

</body>

</html>

이 질문에 댓글 쓰기 :

답변 3

<br /> 을 그대로 쓰는 게 답일 수 있습니다.

 

치환 코드 모두 삭제

해당 내용만으로는 정확한 컬럼인지 확인이 되지 않는데

치환 함수는 잘 처리하셨는데

데이터형식의 해당 태그인지 확인후 치환하셔서 확인 테스트를 해보셔야 할듯 합니다.

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

회원로그인

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