导出到Excel不正确显示数字

时间:2010-08-02 23:38:49

标签: excel coldfusion export-to-excel coldfusion-8

将数据从数据库导出到Excel电子表格时,我很难正确显示帐号。一家公司的帐号正确显示。但是,其他人则没有。用户必须双击单元格才能查看整个帐号。我用谷歌搜索过这个问题,但我尝试过的解决方案都没有。

<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> 

3 个答案:

答案 0 :(得分:7)

如果要导出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>

答案 1 :(得分:5)

您可以在帐号前插入撇号。这将强制excel将数字(任意)数据视为文本。

答案 2 :(得分:1)

当列不足以显示数据时,通常会发生这种情况。尝试使列更宽,看看是否能解决问题。