导出到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>#totalpastdue#</td> <td>#dateformat(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>
这通常发生在列不够宽时显示数据。 尝试使列更宽,看看是否可以解决问题。