본문 바로가기

Story/html/css

프로그램으로 엑셀다운로드 만들때 셀에 줄바꿈시 셀병합문제

반응형

php 나 asp 등으로 엑셀파일을 만들는 경우가 있는대
대부분 html table 태그로 내용을 만들어주고 헤더값을 이용해서 엑셀 파일로 인식하도록하고 확장자를 xls 로 해준다.
데이타에 따라서 한 셀에 들어갈 내용이 여러줄일경우가있다
이럴땐 html 태그를 사용하게 되므로 <br/> 태그를 사용하게 되는대 엑셀 파일에선 <br/>로 바뀐 줄수만큼 셀이 사용이된다.
이 <br/> 때문에 셀번호가 늘어나지 않고 높이만 늘어나게 해야 할 경우가 있다.
이땐 셀에 스타일 값을 주어 해결이 가능하다.
<style>
<!--
br {mso-data-placement:same-cell;}
-->
</style>
위처럼 스타일을 지정해주면 된다.

php 로 위의 스타일을 사용한 예를 적어보겠다.
<?
header( "Content-type: application/vnd.ms-excel;charset=euc-kr" );
header( "Content-Disposition: attachment; filename=test.xls" );
header( "Content-Description: PHP4 Generated Data" );
?>
<!DOCTYPE application/vnd.ms-excel;charset=euc-kr>
<meta http-equiv="Content-Type" content="text/html; charset=euc-kr">
<style>
<!--
br{mso-data-placement:same-cell;}
-->
</style>
<table width="100%" border="1">
    <tr>
        <td>줄바꿈 없음</td>
        <td>줄바꿈 있음</td>
    </tr>
    <tr>
        <td>가나다라마바</td>
        <td>
            첫번째줄<br/>
            두번째줄
        </td>
    </tr>
</table>

 
반응형