Bezdepbonusu7Программирование: статьи и ответы

Вопрос

Excel 2002 Web Query искажает даты в формате en-GB

Автор вопроса: AlanRОтветов: 6

Добрый день,

У меня есть веб-запрос в Excel 2002, идущий к веб-странице, которая возвращает столбец даты. Даты возвращаются как DD/MM/YYYY, так как я хотел бы показать их в своей электронной таблице. На моей машине, на которой работает Excel, региональные настройки установлены на en-GB, а в разделе "Свойства обозревателя" установлен единственный язык - британский английский.

Тем не менее, веб-запрос извлекает даты как MM/DD/YYYY, что неправильно интерпретируется Excel.

Как я могу заставить веб-запрос возвращать даты в моих региональных настройках, MM/DD/YYYY?

excelvbaexcel-web-query

Ответы

Ответ 1 · рейтинг 2 · Mark Nold

Можете ли вы изменить "веб-запрос"?

Универсальный формат даты - это лучший способ для продуктов Office распознавать дату/время. У меня были аналогичные проблемы при работе с датами из Великобритании в США, и я обнаружил, что кодирование ваших дат в этом формате избавляет вас от многих проблем.

Universal Date format is : "yyyy-mm-dd hh:mm:ss"

Ответ 2 · Tomalak

Возможно, вам повезло, и Excel понимает либо атрибут HTML lang, либо метатег <meta http-equiv="content-language" content="...">. Честно говоря, я думаю, что это не имеет значения.

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

Альтернативой может быть полное отключение распознавания даты и последующая обработка вручную после запроса. Для этого заново создайте веб-запрос и в диалоговом окне "Новый веб-запрос" нажмите кнопку "Параметры..." в правом верхнем углу. Есть галочка "Отключить распознавание даты".

Ответ 3 · GSerg

Веб-запрос Excel ужасен с точки зрения международных вещей. У меня это тоже не сработало. Что мне, наконец, пришлось сделать, так это просто загрузить данные вручную с помощью макроса, проанализировать их по локали и поместить на лист. К счастью, я запросил веб-службу, которая вернула XML, так что это было легко. Если вы анализируете HTML, сделайте то, что Томалак предложил.

Ответ 4 · iftee

В Excel 2007 изменение формата даты в региональных настройках работало нормально.

Ответ 5 · AlanR

Формат веб-страницы - en-GB. Я изменил свои региональные настройки в панели управления на en-GB. Я изменил язык параметров Интернета на en-GB.

Тем не менее веб-запрос Excel возвращает данные в формате en-US. Я не вижу, как что-либо из того, что вы предложили, могло бы помочь. В этом случае постобработка невозможна.

Ответ 6 · DBS

В редакторе VBA попробуйте установить

WebDisableDateRecognition

внутри стандартной команды веб-запроса:

With Selection.QueryTable
    .Connection = _
    "URL;http://whateverYourURLis"
    .WebSelectionType = xlSpecifiedTables
    .WebFormatting = xlWebFormattingNone
    .WebTables = "7"
    .WebPreFormattedTextToColumns = True
    .WebConsecutiveDelimitersAsOne = True
    .WebSingleBlockTextImport = False
    .WebDisableDateRecognition = True
    .WebDisableRedirections = False
    .Refresh BackgroundQuery:=False
End With

(Обратите внимание, что вы можете получить то же самое, что и выше, просто записав макрос при выполнении веб-запроса...)

Хорошо сработало здесь, надеюсь, что это сработает и для вас.

Ваше здоровье!

Перевод вопроса и ответов сообщества Stack Overflow, лицензия CC BY-SA. Оригинал на Stack Overflow.

Похожие материалы