在網頁應用程式開發上常常會有需求是要把表格呈現的資料轉為excel儲存,而遇到這些需求的時候往往就是透過直接輸出一個表格的方式(html table tag)把資料透過tr,th,td的方式印出來。
而有時候在印出的資料為一個數字的時候會發生印出少0的情況,如035781178印出來會變成35781178,而資料如果是035-781178卻可以成功印出。其實這樣是因為excel column預設的general format會將數字開頭的0去除,而文字格式則不會有這個問題。
實務上,下面是一段可以將電話前端0印出的classic asp程式
1 | <% |
從上面可以看到,只要一段CSS就可以解決你的問題了,而如果你是要其他格式也可以幫你轉換,這邊幫大家找到一份整理資料如下:
1 | <table border="0" cellpadding="1" cellspacing="1" width="100%"><tbody><tr><td valign="top" width="50%">mso-number-format:"0"</td><td valign="top" width="50%">NO Decimals</td></tr><tr><td valign="top" width="50%">mso-number-format:"0\.000"</td><td valign="top" width="50%">3 Decimals</td></tr><tr><td valign="top" width="50%">mso-number-format:"\#\,\#\#0\.000"</td><td valign="top" width="50%">Comma with 3 dec</td></tr><tr><td valign="top" width="50%">mso-number-format:"mm\/dd\/yy"</td><td valign="top" width="50%">Date7</td></tr><tr><td valign="top" width="50%">mso-number-format:"mmmm\ d\,\ yyyy"</td><td valign="top" width="50%">Date9</td></tr><tr><td valign="top" width="50%">mso-number-format:"m\/d\/yy\ h\:mm\ AM\/PM"</td><td valign="top" width="50%">D -T AMPM</td></tr><tr><td valign="top" width="50%">mso-number-format:"Short Date"</td><td valign="top" width="50%">01/03/1998</td></tr><tr><td valign="top" width="50%">mso-number-format:"Medium Date"</td><td valign="top" width="50%">01-mar-98</td></tr><tr><td valign="top" width="50%">mso-number-format:"d\-mmm\-yyyy"</td><td valign="top" width="50%">01-mar-1998</td></tr><tr><td valign="top" width="50%">mso-number-format:"Short Time"</td><td valign="top" width="50%">5:16</td></tr><tr><td valign="top" width="50%">mso-number-format:"Medium Time"</td><td valign="top" width="50%">5:16 am</td></tr><tr><td valign="top" width="50%">mso-number-format:"Long Time"</td><td valign="top" width="50%">5:16:21:00</td></tr><tr><td valign="top" width="50%">mso-number-format:"Percent"</td><td valign="top" width="50%">Percent - two decimals</td></tr><tr><td valign="top" width="50%">mso-number-format:"0%"</td><td valign="top" width="50%">Percent - no decimals</td></tr><tr><td valign="top" width="50%">mso-number-format:"0\.E+00"</td><td valign="top" width="50%">Scientific Notation</td></tr><tr><td valign="top" width="50%">mso-number-format:"\@"</td><td valign="top" width="50%">Text</td></tr><tr><td valign="top" width="50%">mso-number-format:"\#\ ???\/???"</td><td valign="top" width="50%">Fractions - up to 3 digits (312/943)</td></tr><tr><td valign="top" width="50%">mso-number-format:"\0022£\0022\#\,\#\#0\.00"</td><td valign="top" width="50%">£12.76</td></tr><tr><td valign="top" width="50%">mso-number-format:"\#\,\#\#0\.00_ \;\[Red\]\-\#\,\#\#0\.00\ "</td><td valign="top" width="50%"><p>2 decimals, negative numbers in red and signed<br>(1.56 <span style="color:#cc0000;">-1.56</span>)</p></td></tr></tbody></table> |