今天早上客戶跟我說excel導出身份證的時候顯示有的對有的不對,我一看原來身份證以X結尾的可以,其它都顯示不正確。身份正顯示如圖所示:
在網上搜了一下發現,原來excel看你數字列超過12位就會顯示科學計數。而身份證一般都是18位所以顯示這樣。
解決辦法就是在身份證這一列前面加“單引號”。形如:'4206211111111111111
具體代碼如下:<td >'<s:property value="id_card" /></td>
這樣就可以把問題解決了,不過身份證號碼導出的時候前面會有一個單引號。
================================================================
我總感覺還有更好的方法,我在網上搜了一下,導出的時候可以設置td的樣式,不過我設置了還是沒有效果。
奇葩事情不斷呀,我在本地測試可以通過,放到服務器上就沒有效果。最後找到了一種在本地和服務器都有效果的方法就是:
在頁面前面加入如下代碼:
復制代碼 代碼如下:
<style>
td{
mso-number-format:'\@';
}
</style>
找到這個系統用於導出身份證系統的軟件的安裝目錄,在裡面找EXCEL的模板,應該有一個模板是這個軟件專門用來導出身份證的,將這個模板中顯示身份證號碼這一列的格式設置成“文本”,並將列寬調整到合適的寬度。以上方法只適合於利用模板導出數據的軟件,否則只能修改軟件本身的代碼,那就無能為力了。
“跟沒有X的身份證號碼顯示的一樣左上角都有綠色的小三角”——這說明你已經設置為文本格式了。沒問題
為什麼有X的沒有綠色三角呢?綠色三角的目的是提醒你:“注意,你把輸入的數字設為文本格式了,你要不要更改?”——這就是綠色三角的含義。
現在你數據的末尾是x,這個數據本來就是文本格式的,而且你通過輸入這個x已經告訴EXCEL“我這是文本”,EXCEL當然沒有必要再提醒你什麼。所以就沒有綠色三角了。
綠色三角不代表“文本格式”,只是一種提醒