HTML XML в Excel через PHP - конвертировать в числа - PullRequest
0 голосов
/ 06 сентября 2011

Я пытаюсь преобразовать HTML в Excel без использования библиотеки.

Я только что столкнулся с одной проблемой .... У меня есть готовые классы и т. Д. И т. Д. (В основном я экспортировал Excel в html) и теперь делаю это наоборот [просто изменяя содержимое].

Я форматирую свою валюту / итоги как числа с двумя десятичными знаками. (когда вы щелкаете их правой кнопкой мыши, это говорит, по крайней мере, так), но в Excel он по-прежнему отображается как текст, и для работы с ними мне нужно нажать Convert to Number

В данный момент у меня это в цикле. Как вы думаете, достаточно?

<td class=xl112 align=right style='border-top:none;border-left:none'>2,033.00
</td>

а в css у меня

.xl112
    {mso-style-parent:style0;
    mso-number-format:"\#\,\#\#0\.00_ \;\[Red\]\\-\#\,\#\#0\.00\\ ";
    vertical-align:middle;
    border-top:.5pt solid windowtext;
    border-right:1.0pt solid windowtext;
    border-bottom:.5pt solid windowtext;
    border-left:1.0pt solid windowtext;
    background:#FFFF99;
    mso-pattern:auto none;}

Ответы [ 2 ]

2 голосов
/ 06 сентября 2011

Вы используете HTML в качестве файла "excel" - все в HTML автоматически становится текстом.Это особенно верно, когда вы «печатаете» свои числа с разделителями тысяч.

Если вы хотите, чтобы ваши числа обрабатывались как числа, используйте настоящий файл Excel, сгенерированный PHPExcel .Там вы точно указываете, какой тип данных в ячейке.Вы говорите, что не хотите использовать библиотеку, но вам будет лучше, если вы на самом деле это сделаете.

1 голос
/ 06 сентября 2011

Это сработало для меня. Не знаете, почему у вас есть эти обратные слеши в вашем формате чисел?

Смотрите здесь: http://codesnipers.com/?q=excel-compatible-html

Полная ссылка: http://msdn.microsoft.com/en-us/library/Aa155477(office.10).aspx

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

<head>
    <style>
        .s1 {mso-number-format:"#,##0.00_ ;[Red]-#,##0.00";}
    </style>
</head>



 <body>
  <table>
      <tr>
        <td class="s1" x:num="2033">2033</td>
      </tr>
  </table>
 </body>
</html>
...