Подтвердить что ты не робот

HTML в Excel: как можно сказать Excel рассматривать столбцы как числа?

Мне нужно сделать следующее при открытии HTML в Excel (Response.contentType="application/vnd.ms-excel"):

  • заставить Excel рассматривать содержимое ячеек td как числа
  • сделайте выше, чтобы любые последующие введенные пользователем формулы работали над этими ячейками (когда электронная таблица открыта)

До сих пор мне удавалось добавить style="vnd.ms-excel.numberformat:0.00" в соответствующие ячейки td. Содержимое ячеек правильно отображается как цифры, когда я нажимаю на них в Excel, но формулы не работают.

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

4b9b3361

Ответ 1

Если вы добавите класс CSS на свою страницу:

.num {
  mso-number-format:General;
}
.date {
  mso-number-format:"Short Date";
}

И шлепните эти классы на своих ТД, он работает?

<td class="num">34</td>
<td class="num">17.0</td>
<td class="date">12/17/2008</td> <!-- if you are playing with dates too -->

Обновление: Дополнительные параметры форматирования из @Aaron.

Ответ 3

Лучший трюк состоит в том, чтобы макет электронной таблицы Excel со всеми цветами/(условными) форматами/формулами, которые вам нужны.

Держите его как можно проще, просто минимальные строки и т.д.

Затем сохраните таблицу Excel "Как Xml Spreadsheet"

Затем у вас есть шаблон для создания электронной таблицы через Xml.

Обычно я очищаю стили в исходном Xml, сохраненном из книги Excel. Удаление дубликатов и их переименование.

Тогда это просто вопрос заполнения любым источником данных, который у вас есть.

Я не знаю, какую среду вы кодируете, но в VB.NET с LINQ и Xml Literals это очень простая задача.

Ответ 4

Иногда это не работает, если вы добавляете его с помощью css class, в этом случае попробуйте использовать его в Style для своего TD. Я сделал это для форматирования столбца для текста. как это

 style="mso-number-format:\@;"

Для вас это будет как

  mso-number-format:General

Ответ 5

Я не мог получить ответы на эту страницу для работы в Excel 2010. Я закончил использовать это.

<td x:num>123</td>

Ответ 6

UPDATE: вам также нужно удалить неразрывные пробелы (nbsp) из ячеек td, содержащих числовую или денежную информацию, чтобы заставить формулы работать с этими ячейками в Excel. Поэтому проблема решена.