导出到Excel不能正确显示数字

在将数据从数据库导出到Excel电子表格时,我很难使帐号正确显示。 一家公司的账号正确显示。 但是,其他人不这样做。 用户必须双击单元格才能看到整个帐号。 我已经Google了这个问题,没有我尝试过的解决scheme。

<cfsetting enablecfoutputonly="Yes"> <cfsavecontent variable="sTest"> <cfoutput> <table> <tr><th align="center">ATTUID</th> <th>Company Name</th> <th align="center">Account Number </th> <th align="center">Total Past Due Balance</th> <th align="center">Date Sent</th> </tr> <cfloop query="returnQuery"> <tr><td>#attuid#</td> <td>#companyname#</‌​td> <td>#AccountNum4#‌​</td> <td>#totalpastd‌​ue#</td> <td>#datefor‌​mat(posted)# #timeformat(posted, "h:mm tt")#</td> </tr> </cfloop> </table> </cfoutput> </cfsavecontent> <cfcontent type="application/vnd.msexcel"> <cfheader name="Content-Disposition" value="inline; filename=export.xls"> <cfoutput>#sTest#</cfoutput> 

您可以在帐号前插入一个撇号。 这将强制excel将数字(任何)数据作为文本处理。

如果您正在导出html,则还可以使用xml mso模式属性将数字格式化为文本,而不更改实际的单元格值,即添加撇号。

 <cfheader name="Content-Disposition" value="inline; filename=someFile.xls"> <cfcontent type="application/vnd.ms-excel"> <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"> <body> <table> <tr> <td style='mso-number-format:"\@";'>510074123456989</td> </tr> </table> </body> </html> 

这通常发生在列不够宽时显示数据。 尝试使列更宽,看看是否可以解决问题。