php匯出資料到excel,防止身份證等數字字元格式變成科學計數的方法
在網上查了很多資料知道解決辦法大概有兩個:一是在身份證欄位前加個英文單引號,二是設定Excel的格式為文字格式。 我試用過第一種確實可以顯示,但是有個“'”號在那裡感覺確實不是很好,雖然聽說不影響,但是需要使用者點選那個單元格那個單引號才消失,並且在該格的左上角中顯示綠色的三角形。 客戶要求我繼續改進。 於是考慮第二種辦法,發現網上的資料是有一些,但是都是關於Delphi,asp.net,asp等設定格式的方法。 而關於php的也有,但是大多都是用phpExcel匯出的方法或者spreadsheet等類或者控制元件之類的匯出方法,而我所在維護的系統卻用很簡單的方法,如下,網上很少有講如何設定要匯出資料的EXcel格式。 我匯出EXcel的主要程式碼的前面部分: <? <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從web頁面上匯出的原理。當我們把這些資料傳送到客戶端時,我們想讓客戶端程式(瀏覽器)以excel的格式讀取它,所以把mime型別設為:application/vnd.ms-excel,當excel讀取檔案時會以每個cell的格式呈現資料,如果cell沒有規定的格式,則excel會以預設的格式去呈現該cell的資料。這樣就給我們提供了自定義資料格式的空間,當然我們必須使用excel支援的格式。下面就列出常用的一些格式: ” 於是按照他說的方法設定了匯出資料時對應的身份證列的<td>的樣式: echo "<td style='vnd.ms-excel.numberformat:@'>".$printable."</td>\n"; 果然成功了,沒有枉費了查半天的資料。 來源:未知 作者:矽峰網路-紅豆 |