php 출력 excel 표 디코딩 및 첫 번째 0이 표시되지 않는 해결 방법 (상세)

php에 관한 것도 있지만 대부분이 phpExcel로 내보내는 방법이나spreadsheet 등 종류나 컨트롤러 같은 내보내는 방법이지만 제가 관리하는 시스템은 간단한 방법을 사용합니다. 다음과 같습니다. 인터넷에서 데이터를 내보내는 엑셀 형식을 설정하는 방법은 거의 없습니다.EXcel의 기본 코드의 앞부분을 내보냅니다.
<?
if(count($data)>40000){
$filename_type='csv';
}else{
$filename_type='xls';
}
header("Content-Type: application/vnd.ms-excel");
Header("Accept-Ranges:bytes");
Header("Content-Disposition:attachment;filename=".$filename.".".$filename_type); //$filename 
header("Pragma: no-cache");
header("Expires: 0");
if($filename_type=='xls'){
echo '<html xmlns:o="urn:schemas-microsoft-com:office:office" xmlns:x="urn:schemas-microsoft-com:office:excel" xmlns="http://www.w3.org/TR/REC-html40"> <head> <meta http-equiv="expires" content="Mon, 06 Jan 1999 00:00:01 GMT"> <meta http-equiv=Content-Type content="text/html; charset=gb2312"> <!--[if gte mso 9]><xml> <x:ExcelWorkbook> <x:ExcelWorksheets> <x:ExcelWorksheet> <x:Name></x:Name> <x:WorksheetOptions> <x:DisplayGridlines/> </x:WorksheetOptions> </x:ExcelWorksheet> </x:ExcelWorksheets> </x:ExcelWorkbook> </xml><![endif]--> </head>';
}

뒤에 <table><tr><td></td></tr></table> 형식으로 데이터를 출력합니다.
반나절을 조사한 끝에 마침내 약간의 유용한 자료를 찾았는데, 지금은 아래와 같이 베껴 쓴다.
"우선, excel이 웹 페이지에서 내보내는 원리를 알아보겠습니다. 이 데이터를 클라이언트에게 보낼 때, 클라이언트 프로그램 (브라우저) 을excel 형식으로 읽기 때문에mime 형식을 응용 프로그램/vnd로 설정합니다.ms-excel, excel이 파일을 읽을 때 모든cell의 형식으로 데이터를 보여줍니다. 만약cell에 규정된 형식이 없다면 excel은 기본 형식으로 이cell의 데이터를 보여줍니다.이렇게 하면 사용자 정의 데이터 형식의 공간을 제공할 수 있습니다. 물론 excel이 지원하는 형식을 사용해야 합니다.다음은 자주 사용하는 형식입니다.
1)  :vnd.ms-excel.numberformat:@
2)  :vnd.ms-excel.numberformat:yyyy/mm/dd
3)  :vnd.ms-excel.numberformat:#,##0.00
4)  :vnd.ms-excel.numberformat:¥#,##0.00
5)  :vnd.ms-excel.numberformat: #0.00%

이러한 형식은 사용자 정의할 수 있습니다. 예를 들어 연월은 다음과 같이 정의할 수 있습니다. yy-mm 등등.그럼 이 형식들을 알게 됐는데 어떻게 이 형식들을 셀에 추가할 수 있을까요?간단합니다. 우리는 대응하는 탭 쌍 (즉 닫힌 탭) 에 스타일을 추가하기만 하면 됩니다.예를 들어 <td></td> 라벨 쌍<td></td>에 스타일을 추가하면 다음과 같다. <td style="vnd.ms-excel.numberformat:@">410522198402161833</td> 마찬가지로 우리도 <div></div>에 스타일을 추가할 수 있고 <tr>< /tr>, <table></table>에 스타일을 추가할 수 있다.부모 탭 쌍과 하위 탭 쌍에 스타일을 추가할 때 데이터는 어떤 스타일로 나타날까요?테스트를 거쳐 데이터와 가장 가까운 스타일로 나타날 것이다.
그래서 그가 말한 방법에 따라 데이터를 내보낼 때 대응하는 신분증 열의 양식을 설정했다.
echo "<td style='vnd.ms-excel.numberformat:@'>".$printable."</td>
"
;

과연 성공했구나, 한참 동안 조사한 자료가 헛되지 않았구나.

좋은 웹페이지 즐겨찾기