본문 바로가기
개발하는 '정'/PHP

[PHP] 엑셀 다운로드 시 숫자형을 문자형으로 출력하기

by 주앤정_블로그 2021. 10. 1.

[PHP] 엑셀 다운로드 시 숫자형을 문자형으로 출력하기

 

문제현상

문자형을 엑셀로 다운로드했을 때 엑셀에 속성이 먹히면서 변형되는 경우가 있다.

 

아래와 같은 소스를 이용해서 엑셀 다운로드하면

<?php
header("Content-Type: application/x-msexcel; name=\"".date("ymd", time()).".xls\"");
header("Content-Disposition: inline; filename=\"".date("ymd", time()).".xls\"");
?>
<meta http-equiv='Content-Type' content='text/html; charset=UTF-8'>

<div>
	<table>
		<tbody>
			<td>13:00</td>
			<td>jun9999</td>
		</tbody>
	</table>
</div>

 

아래와 같이 속성이 적용되어 출력된다.

php 엑셀 문자로 출력

 

해결방법

td에 style=mso-number-format:'\@' 을 추가한다.

<?php
header("Content-Type: application/x-msexcel; name=\"".date("ymd", time()).".xls\"");
header("Content-Disposition: inline; filename=\"".date("ymd", time()).".xls\"");
?>
<meta http-equiv='Content-Type' content='text/html; charset=UTF-8'>

<div>
	<table>
		<tbody>
			<td style=mso-number-format:'\@'>13:00</td>
			<td style=mso-number-format:'\@'>jun9999</td>
		</tbody>
	</table>
</div>

 

출력결과

php 엑셀 문자로 출력

"13:00" 도 속성 적용없이 문자 그대로 출력된다.

 

 

 

 

 

 

반응형

댓글