Excel 2007 не будет переформатировать веб-запрос xml с полем datetime

#.net #wcf #excel #rest #excel-web-query

#.net #wcf #excel #rest #excel-web-query

Вопрос:

У меня есть веб-сервис, который возвращает XML, который выглядит как:

 <ArrayOfPosition>
<Position>
<Amount>9</Amount>
<Symbol>Bob</Symbol>
<UpdateTime>2011-04-21T11:34:34.234234234-04:00</UpdateTime>
<UpdateTimeStr>2011-04-21 11:22:33</UpdateTimeStr>
</Position>
<Position>
<Amount>10</Amount>
<Symbol>Fred</Symbol>
<UpdateTime>2011-04-21T11:34:34.234234234-04:00</UpdateTime>
<UpdateTimeStr>2011-04-21 11:22:44</UpdateTimeStr>
</Position>
</ArrayOfPosition>
  

Он поступает в Excel без проблем, но независимо от того, что я делаю, я не могу изменить форматирование столбцов UpdateTime или UpdateTimeStr в электронной таблице. Excel, похоже, отказывается распознавать эти данные как поле datetime.

У меня было ощущение, что он не сможет определить, что поле было датой и временем, поэтому я добавил поле с именем UpdateTimeStr, в котором время отформатировано так, как я ожидал, что Excel поймет, но, увы, ничего не вышло. Есть идеи?

Ответ №1:

Одним из решений является использование формулы в Excel для повторного использования текстовых данных, импортируемых из XML. Например, вы можете написать формулу типа: «=D2 0» (D2 будет ячейкой, в которой хранится значение UpdateTimeStr), чтобы получить числовое представление значения UpdateTimeStr (например: 40654.47399). Затем вы можете отформатировать это числовое значение как дату любым удобным для вас способом.

Вы можете проделать этот небольшой трюк в отдельном столбце, чтобы вычислить все числовые представления для всего столбца UpdateTimeStr. Затем вы форматируете этот новый столбец (с числами) и вставляете его поверх исходного столбца UpdateTimeStr.

Я надеюсь, что это поможет вам!