Следующий поддельный файл Excel:

<style> .text { mso-number-format:\@; }</style>
<div>
    <table class="results" cellspacing="0" rules="all" border="1" id="ctl00_content_grdData" style="border-collapse:collapse;">
        <thead>
            <tr>
                <th scope="col">A</th><th scope="col">B</th><th scope="col">C</th><th scope="col">D</th>
            </tr>
        </thead><tbody>
            <tr>
                <td class="text">1000</td><td>1000.00</td><td>1000,00</td><td>1.000,00</td>
            </tr>
        </tbody>
    </table>
</div>

Отображается в Excel 2007 как
excel_1000

Обратите внимание, что столбец B отображается как «1000.00.00».

Дополнительная информация: Региональные / языковые настройки Windows установлены на «Италия».

Как это возможно и как это решить?

Примечание . Я использовал разные значения, чтобы показать поведение, отличное от Excel.

Редактировать 2
Когда я помещаю значение '1000,00' в столбец A (столбец с классом 'text' в элементе td, значение отображается точно так же, как и в Excel:

2 ответа2

2

Согласно итальянскому языку, 1000.00 отображается как 1000.00.00, поскольку распознается как время (например, период времени). Итак, первое число это часы, затем минуты, затем секунды.

В OpenOffice, но в Excel должно быть то же самое, я проверил формат времени с итальянским языком: «HH.MM.SS».

0

Вы смешиваете типы отображения чисел в своей таблице.

<td class="text">1000</td><td>1000.00</td><td>1000,00</td><td>1.000,00</td>

Обратите внимание, что первое число равно 1000, второе имеет точку для разделения десятичной дроби, третье имеет запятую для разделения десятичной дроби (как и последняя).

Если вы сделаете их все согласованными - точка для десятичных дробей, запятая для разделителя тысяч, все должно работать.

Разделитель тысяч точек и разделитель запятой - это европейский стиль, для которого по умолчанию в Excel используется итальянский. Это тогда смущается одним числом, которое не соответствует шаблону.

Всё ещё ищете ответ? Посмотрите другие вопросы с метками .