Экспорт в Excel не правильно отображает числа - PullRequest
2 голосов
/ 03 августа 2010

Мне трудно заставить номера счетов правильно отображаться при экспорте данных из базы данных в электронную таблицу 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 ]

7 голосов
/ 03 августа 2010

Если вы экспортируете 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>
5 голосов
/ 03 августа 2010

Вы можете вставить апостроф 'перед номером счета.Это заставит Excel обрабатывать числовые (любые) данные как текст.

1 голос
/ 03 августа 2010

Обычно это происходит, когда столбец недостаточно широк для отображения данных. Попробуйте расширить столбец и посмотрите, исправит ли это проблему.

...