Меню

Не удалось загрузить файл потому что ошибка во время парсинга excel файла ртс тендер

Ошибки импорта из Excel и их решения.

Раздел Импорт из Excel – предназначен для загрузки текстовых данных о товарах и услугах компании в формате XLS, XLSX, CSV.

Это может быть файл созданный по нашему шаблону для импорта, или же, к примеру, файл экспортированый с другого сайта в формате XLS, XLSX, CSV.

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

Сообщение об ошибке » В выбранном файле не все обязательные поля или файл поврежден». Как это решить?

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

2. Ошибка возникает при попытке загрузить файл не в формате xls, xlsx или csv при импорте из Excel. Измените расширение импортируемого файла.

Если файл создан в результате экспорта с другого сайта проверьте его на соответствие с нашим шаблоном и наличием обязательных полей/колонок в файле Excel. Посмотреть правила составления файла Excel можно в Кабинете компании — Товары и УслугиИмпорт из Excel

3. Формат одной или нескольких ячеек выбран не верно. Например, в колонке ЦЕНА значение должно быть числовое и целое:

4. Если файл импорта был создан не из нашего шаблона тогда ошибка может быть из-за отсутствия или неверного заполнения поля колонок Адрес_подраздела и Идентификатор_подраздела. Если файл импорта создан из шаблона, импорт происходит даже если эти поля пустые.

После импорта отсутствуют фото к товару , хотя он были в файле импорта. Почему?

Причин, почему в результате импорта картинка не отобразилась, может быть несколько. Если это не связано с настройками импорта, то причину можно найти в файле импорта.

1. В файле импорта не указаны URL для изображений. Для импорта из Excel это колонка Ссылка_изображения. Ссылки должны быть разделены запятыми с пробелами:

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

2. Также нужно проверить доступность ссылки, если это ссылка на картинку с сайта — скопируйте её и вставьте в строку браузера. Перейдите по адресу ссылки — если картинка отображается — адрес ссылки корректный.

Импорт прошел и у всех товаров теперь статус «Наличие не известно». Почему?

Для обозначения статуса наличия в колонке Наличие применяется:

Если оставить поле наличия пустым — статус вашего товара станет Наличие не известно.

Не отобразилась скидка после импорта. В чем причина?

Колонка Скидка должна иметь процентное или числовое значение, если в этой колонке (или ячейке) значение было указано не % или число — скидка не отобразится. На примере изображения ниже преобразуйте ячейки колонки Скидка в нужный формат:

В файле импорта были заполнены характеристики, но в карточке товара они оказались в Дополнительном. Почему?

На сайте компании и на портале Основные характеристики могут выступать фильтрами при поиске, а Дополнительные характеристики просто отображаются в описании к товару списком.

Если были указаны характеристики, но после импорта они отражаются в Дополнительных, значит для Рубрики, к которой относится товар, нет такой характеристики в нашей базе и система перенесла эти атрибуты в дополнительные.

Знайка, самый умный эксперт в Цветочном городе

Мнение эксперта

Знайка, самый умный эксперт в Цветочном городе

Если у вас есть вопросы, задавайте их мне!

Задать вопрос эксперту

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

Облачные сервисы не требуют установки на ПК. Все данные хранятся на серверах разработчиков, вы скачиваете только результат парсинга. Доступ к программному обеспечению осуществляется через веб-интерфейс или по API.
Чистка реестра Windows

Что значит ошибка перенос в excel

Добавить список url можно вручную, XLSX-файлом или ссылкой на XML-карту сайта. Отчеты выгружаются в форматах HTML и XLSX. Первые 500 запросов — бесплатно. Все нюансы работы с инструментом мы описали в гайде.

Открыв, RSS ленту своего сайта видишь, что ленты нет, а браузер сообщает об ошибке. Как мне удается вернуть «на место», «отвалившуюся» RSS ленту я и расскажу дальше.

Примечание: Хочу поправиться и замечу, что неисправности фида не валятся с неба. Скорее всего, это результат установки нового плагина или ваше изменение, некоторых файлов в шаблоне. Так как, для формирования фида используется язык разметки XML, который имеет строгие правила синтаксиса, то любое изменение в файлах, которые не влияют на работу сайта, могут «отстегнуть» RSS.

Для исправления ошибки, я обычно делаю следующие шаги, причем исправление фида может произойти на любом шаге.

Примечание: Вообще эта синтаксическая ошибка называется ошибка разбора XML или XML Parsing Error. В разных браузерах она показывается по-разному. Например, в Chrome:

Предположительно, ошибка разбора появляется из-за пробельных символов (пробел, новая строка, табуляция) появившихся в коде WordPress перед декларацией XML.

Для начала, попытаемся устранить ненужные пробелы в коде

Не помогло, или не хочется лазить по коду, воспользуйтесь плагином: Fix RSS Feed WordPress. Хоть и плагин не протестирован на версии 3.8, вполне может помочь в восстановлении ленты RSS.

Данный плагин не обновлялся 2 года. Скорее всего, он уже не поддерживается и может быть несовместим с текущими версиями WordPress.

Плагин установите на сайт любым из способов установки плагинов. После активации плагина, откройте его и запустите процесс исправления. Если проблема неработающего канала RSS в лишних пробелах, этот плагин должен помочь.

Исправить Rss поток WordPress.Как сделать сайт WP WordPress Fix Rss Feed ‹ WordPress.Как сделать сайт WP — WordPress

Если плагин Fix RSS Feed WordPress не помог, возможен конфликт одного из плагинов. Попробуйте, отключать в Консоли → Плагины → Установленные, последовательно каждый активный плагин, проверяя работоспособность ленты RSS.

Ошибки будут подсвечены желтым цветом. Ошибки связанные не с синтаксисом файлов, нужно решать для каждого конкретного случая отдельно.

Похожие посты:

Это ведь уже не про RSS? по крайней мере убирать пробелы не помогло

По вопросу я не понял, после чего была такая ошибка.
Вероятно вы что-то импортируйте (контент, товары) при помощи плагина импорта.
Если плагин импорта тестирован на вашей версии, я бы сначала отключил другие плагины сайта и повторил импорт.
Если бы это не помогло, написал в suport хостинга.

Добавить комментарий Отменить ответ

Знайка, самый умный эксперт в Цветочном городе

Мнение эксперта

Знайка, самый умный эксперт в Цветочном городе

Если у вас есть вопросы, задавайте их мне!

Задать вопрос эксперту

Предположительно, ошибка разбора появляется из-за пробельных символов пробел, новая строка, табуляция появившихся в коде WordPress перед декларацией XML. Если же вы хотите что-то уточнить, я с радостью помогу!

Я продолжаю получать сообщение об ошибке. Это ошибка
Не уверен, что это подходящее место для этого или нет, если нет, я извиняюсь. Изначально продолжал подниматься, когда я был на ebay, теперь случается случайным образом.

Исправить ошибку Parser конфигурации

Бесплатная версия ограничена 500-ми url. В платной (лицензию можно купить на год) количество страниц для парсинга не ограничено, и она имеет гораздо больше возможностей. Среди них — парсинг цен, названий и описаний товаров с любого сайта. Как это сделать, мы подробно описали в гайде.

В статье:

  • 1 Ошибки импорта из Excel и их решения.
    • 1.1 Что значит ошибка перенос в excel
  • 2 Ошибка разбора XML или XML Parsing Error в RSS-ленте, решения проблемы
    • 2.1 Поиск – Ошибка разбора XML или XML Parsing Error в RSS-ленте
      • 2.1.1 Похожие посты:
    • 2.2 2 комментария к “Ошибка разбора XML или XML Parsing Error в RSS-ленте, решения проблемы”
      • 2.2.1 Добавить комментарий Отменить ответ
    • 2.3 Исправить ошибку Parser конфигурации

Re: ошибка при подаче заявки (РТС Тендер)

На РТС, если не грузятся документы или не проходит заявка, помогает следующее: сохранить часть заявки, или всю как черновик, войти в черновики и уже оттуда отправлять. Несколько раз помагало.


sergej067
Завсегдатай
 
Сообщений: 129
Зарегистрирован: 24 сен 2014, 20:54
Благодарил (а): 0 раз.
Поблагодарили: 12 раз.
Роль: Специализированная организация
Пункты репутации: -1

У кого 23.03.2015 с 10.30-11.00 были проблеммы с РТС.

Сообщение sergej067 » 25 мар 2015, 16:01

23.03 в 10.45 у нас проходил аукцион. Вошли в личный кабинет, подготовились к подаче ценового предложения и стали ждать. Предолжения подовали 2 участника№2 и №4. На 11 минуте проведения торгов, после предложения 2участника 4-ый пять минут молчал. До конца подачи оставалось 4м. 45сек. Яуменьшаю предложение 2 учнастника 0,5% и нажимаю подать, появляется колёсико загрузки, секунд через 30 выскакивает сообщение: ошибка, ваше цена выше чем у 2 участника. Проверяю цену,наше цена на 0,5% меньше. вторая попытка, то же самое, третья попытка — то же. На 4 попытке стали проводить фиксацию. 4- попытка, тоже но сообщение выскочило другое: Кратковременная потеря связи. Мы так и не смогли подать ценовое предложение. К сожалению камеры не было снимали на телефон. Как только пошло доп время, я попробовал проверить ещё раз, через 5 сек выскочило сообщение: ошибка, вы не можите подать цену ниже че у 2-го участника. То есть площадка стала всё распозновать. Будем подовать в ФАС, но ввиду того что у нас не видео а фото, есть большие сомнения, что ФАС удовлетворит нашу жалобу. Но попробуем, фото прилагаю. Если у кого-то были в это время тоже проблеммы с подачей и есть видео, просьба сообщить. А на будующее, советую всем, иметь видеокамеру перед началом торгов. Кстати, такое встречал на РТС несколько раз, но тогда с нескольких попыток всё таки удалось подать.
Обратились в техподдержку, ответ получили стандартный: с нашей стороны сбоев в работе площадки не зафиксированно.

Вложения
Кадр 4.rar
Кадр 4
(499.66 KiB) Скачиваний: 340
Кадр 2.rar
КАдр 2
(504.17 KiB) Скачиваний: 269
Кадр 1.rar
Кадр 1
(398.75 KiB) Скачиваний: 352

sergej067
Завсегдатай
 
Сообщений: 129
Зарегистрирован: 24 сен 2014, 20:54
Благодарил (а): 0 раз.
Поблагодарили: 12 раз.
Роль: Специализированная организация
Пункты репутации: -1

Re: У кого 23.03.2015 с 10.30-11.00 были проблеммы с РТС.

Сообщение NafNaf » 25 мар 2015, 17:52

Площадка действительно не работала. Но подтверждений у меня нет. Аукцион начинался в 11.15, и в 11.15 она заработала. По этому скринов не пришлось делать.


NafNaf
Завсегдатай
 
Сообщений: 122
Зарегистрирован: 15 янв 2015, 10:50
Благодарил (а): 6 раз.
Поблагодарили: 4 раз.
Роль: Поставщик
Пункты репутации: 0

Re: У кого 23.03.2015 с 10.30-11.00 были проблеммы с РТС.

Сообщение jkmufACN » 26 мар 2015, 18:40

Площадка РТС-тендер 23.03.2015 в 11.00 не работала .Пытались подать предложение по аукциону , но пока «крутилось колесико»-минуты 3 прошло не появилось ни одного предложения и так до трех раз «кликали»,а перед истечением 10мин получили сообщение ошибка, вы не можете подать цену ниже ранее поданной, но на экране так и не высветилось не наше предложение ни кого-то еще.Результат-статус «аукцион признан не состоявшимся» и победа досталась участнику, который по протоколу рассмотрения первых частей заявок был под номером 1.


jkmufACN
Новичок
 
Сообщений: 1
Зарегистрирован: 26 мар 2015, 18:15
Благодарил (а): 0 раз.
Поблагодарили: 0 раз.
Роль: Прохожий
Пункты репутации: 0

новая эцп РТС-Тендер

Сообщение vvarior » 05 май 2015, 18:55

Подскажите у меня кончилась эцп, я получил новую и одновременно закончилась аккредитация на РТС-тендере, не пойму как теперь переаккредитоваться и что впервую очередь делать. Зайти на свой акк могу только по логин/паролю, если чтото делать начинаю пишет зайдите по сертификату а он уже не рабочий…


vvarior
Завсегдатай
 
Сообщений: 194
Зарегистрирован: 23 июл 2013, 21:57
Откуда: Ростов-на-Дону
Благодарил (а): 13 раз.
Поблагодарили: 3 раз.
Роль: Поставщик
Пункты репутации: 0

Re: новая эцп РТС-Тендер

Сообщение Аллевтина » 05 май 2015, 19:13

vvarior писал(а):Подскажите у меня кончилась эцп, я получил новую и одновременно закончилась аккредитация на РТС-тендере, не пойму как теперь переаккредитоваться и что впервую очередь делать. Зайти на свой акк могу только по логин/паролю, если чтото делать начинаю пишет зайдите по сертификату а он уже не рабочий…

Позвоните на РТС, они вам лучше нас подскажут.


Аллевтина
Завсегдатай
 
Сообщений: 591
Зарегистрирован: 16 сен 2014, 18:49
Благодарил (а): 57 раз.
Поблагодарили: 57 раз.
Роль: Поставщик
Пункты репутации: 23

Re: новая эцп РТС-Тендер

Сообщение mrbalamut » 05 май 2015, 19:19

vvarior писал(а):Подскажите у меня кончилась эцп, я получил новую и одновременно закончилась аккредитация на РТС-тендере, не пойму как теперь переаккредитоваться и что впервую очередь делать. Зайти на свой акк могу только по логин/паролю, если чтото делать начинаю пишет зайдите по сертификату а он уже не рабочий…

если память не изменяет…. Сделать новую регистрация (новый логин, новый пароль), потом эцп привязать, а деньги ваши сами прикрутятся


mrbalamut
Завсегдатай
 
Сообщений: 303
Зарегистрирован: 12 авг 2013, 18:02
Благодарил (а): 0 раз.
Поблагодарили: 24 раз.
Роль: Поставщик
Пункты репутации: 23

Как исправить ошибку (парсим xls)?

Добрый день! Есть задача распарсить xls. Все вроде хорошо и не раз уже такое делал , пользуюсь библиотекой apache.poi .
Три строчки кода

И тут выпадает эксепшен:
«Exception in thread «main» java.lang.RuntimeException: Unexpected missing row when some rows already present»

Я примерно понимаю в что xls необычный и есть вырезанные ячейки, совмещенные ячейки/строки, но не понимаю как побороть данную ошибку.

  • Вопрос задан более трёх лет назад
  • 552 просмотра

ну а как обычно борят? Джава же данные не родит, если их там нет

отсеивайте проблемные строки, разбирайте вручную

Обычно . хм . наверное хияк-хияк )

А что значит проблемная строка ?

Полный эксепшен
Exception in thread «main» java.lang.RuntimeException: Unexpected missing row when some rows already present
at org.apache.poi.hssf.usermodel.HSSFSheet.setPropertiesFromSheet(HSSFSheet.java:211)
at org.apache.poi.hssf.usermodel.HSSFSheet.(HSSFSheet.java:136)
at org.apache.poi.hssf.usermodel.HSSFWorkbook.(HSSFWorkbook.java:355)
at org.apache.poi.hssf.usermodel.HSSFWorkbook.(HSSFWorkbook.java:400)
at org.apache.poi.hssf.usermodel.HSSFWorkbook.(HSSFWorkbook.java:381)
at odsPars.main(odsPars.java:10)

Он указывает что ошибка в этой строке
HSSFWorkbook xlsxFile = new HSSFWorkbook(new FileInputStream(«../отчет.xls»));

Источник

Ошибка во время парсинга excel файла что это значит

Itsys
Дата 13.3.2008, 13:34 (ссылка) | (нет голосов) Загрузка .

Эксперт

Профиль
Группа: Завсегдатай
Сообщений: 1338
Регистрация: 21.1.2008
Где: г. Москва

Репутация: 1
Всего: 34

Требуется импортировать данные из Excel файлов в таблицу MS SQL
В SQL таблица состоит из колонок Col1, Col2 . Col30 тип ntext

Надо сделать импорт в эту таблицу произвольного Excel файла (структура может меняться, т.е. набор и количество колонок не постоянно) определенных колонок, т.е. не все подряд, а только допустим 3, 4 и 12 в соответствующие колонки таблицы MS SQL, т.е. 3 колонка в Col3, 4 в Col4, 12 в Col12 и начиная с определенной строки, например с 20 и до конца.

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

Второе больше не усложнение, а условие — файл Excel находится на другом сервере в сети и доступен через шару.

PS Данный механизм реализован на Perl, т.е. perl парсит Excel файл и с помошью запросов вставляет это в таблицу, но работает все это очень медлено файл Excel на 16000 строк и 20 колонок парсится около 1-2 минут. Загрузка процессора под 100%, весь отжирается памяти примерно вес файла *3 и загружается сеть, т.к. perl стоит там же, где лежит Excel — на другом сервере. Загрузку файла на 50000 строк, я так и не дождался — обрубил.

ЗЫ Самый главный вопрос, если это реализовать средствами MS SQL, если это, конечно, впринципе возможно, будет ли это работать быстрее и меньше грузить процессор, память и сеть?

Советчик

Профиль
Группа: Модератор
Сообщений: 20507
Регистрация: 8.4.2004
Где: Зеленоград

Репутация: 25
Всего: 453

О(б)суждение моих действий — в соответствующей теме, пожалуйста. Или в РМ. И высшая инстанция — Администрация форума.

Akina
Дата 13.3.2008, 13:42 (ссылка) | (нет голосов) Загрузка .

Опытный

Профиль
Группа: Участник
Сообщений: 418
Регистрация: 23.1.2008
Где: Московская област ь

Репутация: 10
Всего: 17

Magnifico
Дата 13.3.2008, 14:04 (ссылка) | (нет голосов) Загрузка .
Код
Select * From
Openrowset(‘msdasql’,’DRIVER=;ReadOnly=1;DefaultDir=c:filesnames.xls’,
‘Select * From [sheet1$]’)

Шустрый

Профиль
Группа: Участник
Сообщений: 125
Регистрация: 25.6.2007
Где: UA

Репутация: 2
Всего: 5

SharedNoob
Дата 13.3.2008, 14:52 (ссылка) | (нет голосов) Загрузка .
Itsys
Дата 13.3.2008, 15:06 (ссылка) | (нет голосов) Загрузка .

Эксперт

Профиль
Группа: Завсегдатай
Сообщений: 1338
Регистрация: 21.1.2008
Где: г. Москва

Репутация: 1
Всего: 34

Цитата(Akina @ 13.3.2008, 13:42 )
А почему не реализовать это собсно средствами VBA? прямо из модулёчка в самом этом Эксельном файле?
Или, например, промежуточная ADP-шка.

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

Цитата(Magnifico @ 13.3.2008, 14:04 )
для 2005 open rowset

У нас 2000 и пока никаких причин, чтобы покупать 2005 нет, хотя это может стать причиной, вопрос в скорости работы. насколько быстро данный запрос откроет файл на 10 мегов?

Добавлено через 2 минуты и 2 секунды

Цитата(SharedNoob @ 13.3.2008, 14:52 )
А собственно ДТС пакет не выход

Вообще не выход, т.к.

Цитата(Itsys @ 13.3.2008, 13:34 )
Надо сделать импорт в эту таблицу произвольного Excel файла (структура может меняться, т.е. набор и количество колонок не постоянно) определенных колонок, т.е. не все подряд, а только допустим 3, 4 и 12 в соответствующие колонки таблицы MS SQL, т.е. 3 колонка в Col3, 4 в Col4, 12 в Col12 и начиная с определенной строки, например с 20 и до конца.

Какие колонки импортировать а какие нет — определяет менеджер при импорте, и файлы у всех поставщиков очень уж разные

Опытный

Профиль
Группа: Участник
Сообщений: 418
Регистрация: 23.1.2008
Где: Московская област ь

Репутация: 10
Всего: 17

Magnifico
Дата 13.3.2008, 15:16 (ссылка) | (нет голосов) Загрузка .

Шустрый

Профиль
Группа: Участник
Сообщений: 125
Регистрация: 25.6.2007
Где: UA

Репутация: 2
Всего: 5

SharedNoob
Дата 13.3.2008, 15:17 (ссылка) | (нет голосов) Загрузка .
Цитата(Magnifico @ 13.3.2008, 14:04)
для 2005 open rowset
Код
Select * From
Openrowset(‘msdasql’,’DRIVER=;ReadOnly=1;DefaultDir=c:filesnames.xls’,
‘Select * From [sheet1$]’)

Дык а чем не устраивает это ? возвращает набор данных который лежит в ексель файле . да дальше вороти-нехачу .

Добавлено @ 15:18
ой извеняюсь, недочитал . sql2005

ДЛЯ SQL 2000
вариант 1

Код
SELECT *
FROM OPENDATASOURCE(
‘Microsoft Excel Driver (*.xls)’,
‘Data Source=D: ;’
). [название файлла без расширения]
Код
SELECT *
FROM OPENROWSET (‘MSDASQL’,
‘Driver=;
SourceDB=d:;
DefaultDir=d:;
SourceType=XLS;
Exclusive=No;
BackgroundFetch=Yes;
Collate=Russian;
Null=No;
Deleted=No;’,
‘SELECT * FROM [название файлла без расширения]’)

код на работоспособность не проверял но с драйвером для DBF все пашет

Это сообщение отредактировал(а) SharedNoob — 13.3.2008, 15:27

Itsys
Дата 13.3.2008, 15:41 (ссылка) | (нет голосов) Загрузка .

Эксперт

Профиль
Группа: Завсегдатай
Сообщений: 1338
Регистрация: 21.1.2008
Где: г. Москва

Репутация: 1
Всего: 34

А DefaultDir можно задать как \serverfiles?

Это сообщение отредактировал(а) Itsys — 13.3.2008, 15:42

Шустрый

Профиль
Группа: Участник
Сообщений: 125
Регистрация: 25.6.2007
Где: UA

Репутация: 2
Всего: 5

QA => F1 => поиск по указателю => OPENDATASOURCE (или OPENROWSET) => enter
и читаем.

ps
для начала прочитайте данные с локального компьютера, а потом можно и подключить сетевой диск если что.

Это сообщение отредактировал(а) SharedNoob — 13.3.2008, 15:54

SharedNoob
Дата 13.3.2008, 15:53 (ссылка) | (нет голосов) Загрузка .
Itsys
Дата 13.3.2008, 16:09 (ссылка) | (нет голосов) Загрузка .

Эксперт

Профиль
Группа: Завсегдатай
Сообщений: 1338
Регистрация: 21.1.2008
Где: г. Москва

Репутация: 1
Всего: 34

Цитата(SharedNoob @ 13.3.2008, 15:53 )
QA => F1 => поиск по указателю => OPENDATASOURCE (или OPENROWSET) => enter

До этого я сам догадался . Спасибо что напомнил, что есть такая функция в MS SQL (шутка). Ладно протестирую сообщу результаты.

Это сообщение отредактировал(а) Itsys — 13.3.2008, 16:09

Itsys
Дата 16.3.2008, 12:17 (ссылка) | (нет голосов) Загрузка .

Эксперт

Профиль
Группа: Завсегдатай
Сообщений: 1338
Регистрация: 21.1.2008
Где: г. Москва

Репутация: 1
Всего: 34

Код
SELECT TOP 10 * FROM OPENROWSET(
‘MSDASQL’,
‘Driver=Microsoft Excel Driver (*.xls);DBQ=\pavlovFiles34’,
‘SELECT * FROM [LIST$]’
) as xls

Только парсит он не правильно
В файле Excel строка:

Код
New NUM CISBN IDNAME CLARICHEV C_SERIE CNAME CAUTHOR CLONGNAME IINPACK IPAGETOTAL CFORMAT CCOVER cSizes1 iWeight1 YPRICE CPARTITION CSUBPRTION CPUBLNAME CEAN cComplete
Код
New NULL CISBN NULL NULL C_SERIE CNAME CAUTHOR CLONGNAME NULL NULL CFORMAT CCOVER cSizes1 NULL NULL CPARTITION CSUBPRTION CPUBLNAME CEAN cComplete

Почему некоторые значения изменены на NULL?

Опытный

Профиль
Группа: Участник
Сообщений: 418
Регистрация: 23.1.2008
Где: Московская област ь

Репутация: 10
Всего: 17

Могут разные тиы данных в одном столбце:
1
2
3
4
5
6

7A это потенциальный нулл — ошибка преобразования

если не принципиальны типы данных: приводить столбцы эксель к строке

Magnifico
Дата 16.3.2008, 14:51 (ссылка) | (нет голосов) Загрузка .
Код
Sub ПривестиКСтроке()
Dim temp As String
Dim str As String
str = «‘»
For Each c In Selection
temp = Trim(c.Value)

c.Value = str & temp
Next c
End Sub

Itsys
Дата 16.3.2008, 22:11 (ссылка) | (нет голосов) Загрузка .

Эксперт

Профиль
Группа: Завсегдатай
Сообщений: 1338
Регистрация: 21.1.2008
Где: г. Москва

Репутация: 1
Всего: 34

Цитата(Itsys @ 13.3.2008, 15:06 )
Потому-что это используется в интернет-магазине, написанном на perl, а файл Excel — это прайсы поставщиков, которые загружаются, сверяются с существующими товарами поставщика, корректируются цены и д.р. параметры товаров в магазине и добавляются новые — нет возможности добавить в Excel доп обработчики, т.к. файлы не наши, и обяснять как это делать каждому менеджеру после получения файла, собственно говоря не хочется

Есть друие предложения и варианты?

PS хотелось бы сделать все без вмешательства пользователей — получил файл по почте — загрузил в back-office интернет-магазина и все — дальше система сама все обрабатывет, менеджеру надо только подтверждать выполнение определнных действий..

Опытный

Профиль
Группа: Участник
Сообщений: 418
Регистрация: 23.1.2008
Где: Московская област ь

Репутация: 10
Всего: 17

попробуй с cast(ПОЛЕ as nvarchar(255)) поиграться

Magnifico
Дата 17.3.2008, 18:48 (ссылка) | (нет голосов) Загрузка .
Код
select [ЗДЕСЬ] from openrowset(
‘MSDASQL’,
‘Driver=Microsoft Excel Driver (*.xls);DBQ=\pavlovFiles34’,
‘SELECT [ИЛИ ЗДЕСЬ] FROM [LIST$]’
) as xls

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

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

Itsys
Дата 17.3.2008, 21:21 (ссылка) | (нет голосов) Загрузка .

Эксперт

Профиль
Группа: Завсегдатай
Сообщений: 1338
Регистрация: 21.1.2008
Где: г. Москва

Репутация: 1
Всего: 34

Проблема только в том, что исходный файл произвольный, т.е. изначально не известно даже сколько колонок в файле, заголовки полей моут стоять в любой строке файла — моут в первой, а могут и в 20, так как в приведенном выше примере, и, первым делом чего я хочу сделать, так это получить хотябы список полей, а он мне вместо заголовка поля выдает NULL.

Есть ли способ CASTить все поля запроса в VARCHAR без их конкретного указания, ну типа CAST(* AS VARCHAR(5000))?

Beltar
Дата 18.3.2008, 08:42 (ссылка) | (нет голосов) Загрузка .

Опытный

Профиль
Группа: Участник
Сообщений: 627
Регистрация: 11.1.2006

Репутация: нет
Всего: 7

Опытный

Профиль
Группа: Участник
Сообщений: 418
Регистрация: 23.1.2008
Где: Московская област ь

Репутация: 10
Всего: 17

есть еще опции HDR=Yes;IMEX=1;

«HDR=Yes; считает первую строку заголовком полей
«IMEX=1;» интерпретирует данные как текст

Magnifico
Дата 18.3.2008, 16:27 (ссылка) | (нет голосов) Загрузка .

Опытный

Профиль
Группа: Участник
Сообщений: 418
Регистрация: 23.1.2008
Где: Московская област ь

Репутация: 10
Всего: 17

используй лучше оле дб он покорректней работает

Magnifico
Дата 18.3.2008, 17:54 (ссылка) | (нет голосов) Загрузка .
Код
select *
from openrowset(‘Microsoft.Jet.OLEDB.4.0’
, ‘Excel 8.0; HDR=YES; IMEX=1;Database=C:my.xls’
, [sheet1$])

Select *
FROM OPENDATASOURCE(‘Microsoft.Jet.OLEDB.4.0’, ‘Data Source=C:my.xls;
Extended Properties=»Excel 8.0;HDR=Yes;»‘). [sheet1$]

Itsys
Дата 18.3.2008, 20:50 (ссылка) | (нет голосов) Загрузка .

Эксперт

Профиль
Группа: Завсегдатай
Сообщений: 1338
Регистрация: 21.1.2008
Где: г. Москва

Репутация: 1
Всего: 34

Beltar, Обработка на perl уже написана, толь проблема в том, что грузится очень долго, вот и ищу возможность быстрее обработать данные.

Itsys
Дата 19.3.2008, 00:24 (ссылка) | (нет голосов) Загрузка .

Эксперт

Профиль
Группа: Завсегдатай
Сообщений: 1338
Регистрация: 21.1.2008
Где: г. Москва

Репутация: 1
Всего: 34

Опытный

Профиль
Группа: Участник
Сообщений: 418
Регистрация: 23.1.2008
Где: Московская област ь

Репутация: 10
Всего: 17

Magnifico
Дата 19.3.2008, 11:44 (ссылка) | (нет голосов) Загрузка .
Код
Sub ПеребратьИменаЛистов()
Dim XLSFile As String
Dim i As Integer
i = 1
XLSFile = «C:filesnamesw.xls»

Dim ws As Worksheet
For Each ws In Worksheets

MsgBox «Имя » & i & » -го листа: » & ws.Name

Debug.Print «Имя » & i & » -го листа: » & ws.Name
i = i + 1
Next ws
End Sub

Itsys
Дата 19.3.2008, 14:30 (ссылка) | (нет голосов) Загрузка .

Эксперт

Профиль
Группа: Завсегдатай
Сообщений: 1338
Регистрация: 21.1.2008
Где: г. Москва

Репутация: 1
Всего: 34

Вопрос только в том, как это запустить, а потом еще и желательнов запрос передать. мне сами именя листов не нужны, мне надо выбирать данные из первого листа в файле, может можно это как-нибудь задать не перебирая с помощью VB файл?

Код
select *
from openrowset(‘Microsoft.Jet.OLEDB.4.0’
, ‘Excel 8.0; HDR=YES; IMEX=1;Database=C:my.xls’
, [1])
Код
select *
from openrowset(‘Microsoft.Jet.OLEDB.4.0’
, ‘Excel 8.0; HDR=YES; IMEX=1;Database=C:my.xls’
, [sheet[1]$])

Опытный

Профиль
Группа: Участник
Сообщений: 418
Регистрация: 23.1.2008
Где: Московская област ь

Репутация: 10
Всего: 17

Magnifico
Дата 19.3.2008, 20:49 (ссылка) | (нет голосов) Загрузка .
Цитата
Вопрос только в том, как это запустить

excel -> (alt + F11)(Редактор VB) — > insert ->module ->копироватьКодСюда ->правим пути в коде ->RUN

Ole automation это единственный способ добраться к свойствам и методам Эксель
Все языки программирования интегрируются с Эксель именно так, (и ничего другого кроме вышеприведенного кода не придумаешь)

Никаким запросом имена листов узнать невозможно
Эксель не база данных ,и нет возможности получить Информационную схему

Цитата
желательно в запрос передать

Если хочешь помучиться в 2000 есть расширенные хранимые процедуры на c++ (Visual Studio 6 )
(у меня на с++ «аллергия»)

В БОЛЕ набрать OLE Automation там есть какие то методы работы , можно вызывать VBA методы и св-ва (не разбирался)
ищи хороший пример

Или писать прогу на любом языке ,опять же интеграция с Эксель(код вверху)
подключение к sql server -> передача параметров из встроенного VBA в хранимую процедуру (с openrowsetoM)

Цитата
мне надо выбирать данные из первого листа в файле
Itsys
Дата 19.3.2008, 21:36 (ссылка) | (нет голосов) Загрузка .

Эксперт

Профиль
Группа: Завсегдатай
Сообщений: 1338
Регистрация: 21.1.2008
Где: г. Москва

Репутация: 1
Всего: 34

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

Еще раз спасибо.

Опытный

Профиль
Группа: Участник
Сообщений: 418
Регистрация: 23.1.2008
Где: Московская област ь

Репутация: 10
Всего: 17

в 2005 это работает:

Magnifico
Дата 19.3.2008, 23:11 (ссылка) | (нет голосов) Загрузка .
Код
declare @file_name varchar(255), @h_application int, @hr int,@h_workbook int ,
@data varchar(255),@source varchar(255),@description varchar(255)

set @file_name = ‘c:filesserge.xls’

exec @hr = sp_OACreate ‘Excel.Application’, @h_application OUT

exec @hr = sp_OAMethod @h_application, ‘Application.workbooks.Open’, @h_workbook OUT , @file_name
exec @hr = sp_OAGetProperty @h_application, ‘Workbooks(1).Sheets(1).Name’, @data OUT

SELECT @data as [dat]
exec sp_OAMethod @h_application, ‘Quit’
exec @hr=sp_OADestroy @h_application

—set @data =’NewSheet1′;

declare @SQL nvarchar(4000)
set @SQL =
‘SELECT * FROM OPENROWSET(»Microsoft.Jet.OLEDB.4.0»’ +’,’+»’Excel 8.0;HDR=Yes;IMEX=1;Database=C:filesserge.xls»’+’,’+ »’Select * From [‘+ @data +’$]»)’

Itsys
Дата 19.3.2008, 23:55 (ссылка) | (нет голосов) Загрузка .

Эксперт

Профиль
Группа: Завсегдатай
Сообщений: 1338
Регистрация: 21.1.2008
Где: г. Москва

Репутация: 1
Всего: 34

Код
[quote=Magnifico, 19.3.2008, 23:11, post1447877]declare @file_name varchar(255), @h_application int, @hr int,@h_workbook int ,
@data varchar(255),@source varchar(255),@description varchar(255)

set @file_name = ‘c:filesserge.xls’

exec @hr = sp_OACreate ‘Excel.Application’, @h_application OUT

exec @hr = sp_OAMethod @h_application, ‘Application.workbooks.Open’, @h_workbook OUT , @file_name
exec @hr = sp_OAGetProperty @h_application, ‘Workbooks(1).Sheets(1).Name’, @data OUT

SELECT @data as [dat]
exec sp_OAMethod @h_application, ‘Quit’
exec @hr=sp_OADestroy @h_applicatio[/quote]

Насколько я понимаю, это все работает не очень быстро

Опытный

Профиль
Группа: Участник
Сообщений: 418
Регистрация: 23.1.2008
Где: Московская област ь

Репутация: 10
Всего: 17

Это работает мгновенно!
Получить имя первого листа первой открытой книги- какая же здесь может быть нагрузка

Magnifico
Дата 20.3.2008, 09:27 (ссылка) | (нет голосов) Загрузка .
Код
exec @hr = sp_OAGetProperty @h_application, ‘Workbooks(1).Sheets(1).Name’, @data OUT

я просто незнаю будет ли работать в 2000?

Что то ты рано сдался! Это то что доктор прописал .

Одна тонкость Workbooks(1).Sheets(1).Name -мы получаем имя первого листа первой открытой книги,если будет открыта другая книга,
допустим локально , а потом будет выполнен этот запрос -то подхватит именно эту книгу ,а

Код
exec @hr = sp_OAMethod @h_application, ‘Application.workbooks.Open’, @h_workbook OUT , @file_name

будет уже второй.
Из этого следует лучше обращаться к книге по имени (надюсь её название хотя бы известно или тоже скрипт писать ,перебирая все
эксель файлы? )

Код
Workbooks(«Names.xls»).Sheets(1).Name

в 2000 OLE Automation должно как то включаться (поиск)

Itsys
Дата 20.3.2008, 17:41 (ссылка) | (нет голосов) Загрузка .

Эксперт

Профиль
Группа: Завсегдатай
Сообщений: 1338
Регистрация: 21.1.2008
Где: г. Москва

Репутация: 1
Всего: 34

Публиковать ссылки и обсуждать взлом чего бы то ни было.

  • Действия модераторов можно обсудить здесь
  • С просьбами о написании курсовой, реферата и т.п. обращаться сюда
  • Вопросы составления неспецифических запросов рассматриваются здесь
  • Используйте теги [code=sql][/code] для подсветки кода. Используйтe чекбокс «транслит» (возле кнопок кодов) если у Вас нет русских шрифтов.

Если Вам понравилась атмосфера форума, заходите к нам чаще! С уважением, Zloxa, Akina.

0 Пользователей читают эту тему (0 Гостей и 0 Скрытых Пользователей)
0 Пользователей:
« Предыдущая тема | MS SQL Server | Следующая тема »

[ Время генерации скрипта: 0.2007 ] [ Использовано запросов: 21 ] [ GZIP включён ]

Источник

Читайте также:  Grace что это значит

Adblock
detector

Комментарии

Илья, напишите мне на почту, постараюсь помочь

Илья, 8 Окт 2021 — 20:55.#2

Присоединяюсь. Столкнулся с той же проблемой, парсер не может сохранить файл, если задавать ему имя по столбцу…

Владимир, 21 Май 2021 — 16:50.#3

Добрый день. Что-то не так с этими значениями артикула, хотя в excel они выглядят, как обычные. У меня есть ваша программа PastePictures, так она тоже не может именовать картинки по значению этих артикулов. В чем может быть причина?

Владимир, не видя файла настроек, не могу сказать.
Можем настроить под заказ.

Владимир, 20 Май 2021 — 19:28.#5

Да, причина в наименовании файла. Если берется имя из URL, то картинка скачивается, если задается по маске(данные из столбца), то файл не скачивается. Выбирается столбец с артикулами. В чем проблема?

Владимир, возможно неверно задано имя файла (файл не удаётся сохранить по заданному пути и под заданным именем файла)

Владимир, 20 Май 2021 — 14:10.#7

Добрый день. Парсер нормально отработал по сайту, все параметры вывелись в excel, в том числе, ссылки картинок, но сами картинки не загрузились. Парсер выдает сообщение: Ошибка скачивания файла-Не удалось скачать файл по ссылке: https://… Но сама ссылка рабочая и по ней картинка замечательно открывается. ??

Itsys
Дата 13.3.2008, 13:34 (ссылка)
| (нет голосов)
Загрузка ... Загрузка …




Быстрая цитата

Цитата

Эксперт
***

Профиль
Группа: Завсегдатай
Сообщений: 1338
Регистрация: 21.1.2008
Где: г. Москва

Репутация: 1
Всего: 34

Требуется импортировать данные из Excel файлов в таблицу MS SQL
В SQL таблица состоит из колонок Col1, Col2 … Col30 тип ntext

Надо сделать импорт в эту таблицу произвольного Excel файла (структура может меняться, т.е. набор и количество колонок не постоянно) определенных колонок, т.е. не все подряд, а только допустим 3, 4 и 12 в соответствующие колонки таблицы MS SQL, т.е. 3 колонка в Col3, 4 в Col4, 12 в Col12 и начиная с определенной строки, например с 20 и до конца.

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

Второе больше не усложнение, а условие — файл Excel находится на другом сервере в сети и доступен через шару.

PS Данный механизм реализован на Perl, т.е. perl парсит Excel файл и с помошью запросов вставляет это в таблицу, но работает все это очень медлено файл Excel на 16000 строк и 20 колонок парсится около 1-2 минут. Загрузка процессора под 100%, весь отжирается памяти примерно вес файла *3 и загружается сеть, т.к. perl стоит там же, где лежит Excel — на другом сервере. Загрузку файла на 50000 строк, я так и не дождался  smile — обрубил.

ЗЫ Самый главный вопрос, если это реализовать средствами MS SQL, если это, конечно, впринципе возможно, будет ли это работать быстрее и меньше грузить процессор, память и сеть?

PM MAIL WWW Skype   Вверх
Akina
Дата 13.3.2008, 13:42 (ссылка)
| (нет голосов)
Загрузка ... Загрузка …




Быстрая цитата

Цитата

Советчик
****

Профиль
Группа: Модератор
Сообщений: 20544
Регистрация: 8.4.2004
Где: Зеленоград

Репутация: 25
Всего: 453

А почему не реализовать это собсно средствами VBA? прямо из модулёчка в самом этом Эксельном файле?
Или, например, промежуточная ADP-шка.

———————

 О(б)суждение моих действий — в соответствующей теме, пожалуйста. Или в РМ. И высшая инстанция — Администрация форума.

PM MAIL WWW ICQ Jabber   Вверх
Magnifico
Дата 13.3.2008, 14:04 (ссылка)
| (нет голосов)
Загрузка ... Загрузка …




Быстрая цитата

Цитата

Опытный
**

Профиль
Группа: Участник
Сообщений: 418
Регистрация: 23.1.2008
Где: Московская област ь

Репутация: 10
Всего: 17

для 2005 open rowset

Код

Select *  From 
Openrowset('msdasql','DRIVER={Microsoft Excel Driver (*.xls)};ReadOnly=1;DefaultDir=c:filesnames.xls', 
'Select * From [sheet1$]')

———————

Всё  в  порядке   —   спасибо  зарядке  !

PM MAIL   Вверх
SharedNoob
Дата 13.3.2008, 14:52 (ссылка)
| (нет голосов)
Загрузка ... Загрузка …




Быстрая цитата

Цитата

Шустрый
*

Профиль
Группа: Участник
Сообщений: 125
Регистрация: 25.6.2007
Где: UA

Репутация: 2
Всего: 5

А собственно ДТС пакет не выход ?

PM MAIL ICQ Skype   Вверх
Itsys
Дата 13.3.2008, 15:06 (ссылка)
| (нет голосов)
Загрузка ... Загрузка …




Быстрая цитата

Цитата

Эксперт
***

Профиль
Группа: Завсегдатай
Сообщений: 1338
Регистрация: 21.1.2008
Где: г. Москва

Репутация: 1
Всего: 34

Цитата(Akina @  13.3.2008,  13:42 Найти цитируемый пост)
А почему не реализовать это собсно средствами VBA? прямо из модулёчка в самом этом Эксельном файле?
Или, например, промежуточная ADP-шка. 

Потому-что это используется в интернет-магазине, написанном на perl, а файл Excel — это прайсы поставщиков, которые загружаются, сверяются с существующими товарами поставщика, корректируются цены и д.р. параметры товаров в магазине и добавляются новые — нет возможности добавить в Excel доп обработчики, т.к. файлы не наши, и обяснять как это делать каждому менеджеру после получения файла, собственно говоря не хочется  smile

Цитата(Magnifico @  13.3.2008,  14:04 Найти цитируемый пост)
для 2005 open rowset

У нас 2000 и пока никаких причин, чтобы покупать 2005 нет, хотя это может стать причиной, вопрос в скорости работы… насколько быстро данный запрос откроет файл на 10 мегов?

Добавлено через 2 минуты и 2 секунды

Цитата(SharedNoob @  13.3.2008,  14:52 Найти цитируемый пост)
А собственно ДТС пакет не выход

Вообще не выход, т.к.

Цитата(Itsys @  13.3.2008,  13:34 Найти цитируемый пост)
Надо сделать импорт в эту таблицу произвольного Excel файла (структура может меняться, т.е. набор и количество колонок не постоянно) определенных колонок, т.е. не все подряд, а только допустим 3, 4 и 12 в соответствующие колонки таблицы MS SQL, т.е. 3 колонка в Col3, 4 в Col4, 12 в Col12 и начиная с определенной строки, например с 20 и до конца.

Какие колонки импортировать а какие нет — определяет менеджер при импорте, и файлы у всех поставщиков очень уж разные  smile

PM MAIL WWW Skype   Вверх
Magnifico
Дата 13.3.2008, 15:16 (ссылка)
| (нет голосов)
Загрузка ... Загрузка …




Быстрая цитата

Цитата

Опытный
**

Профиль
Группа: Участник
Сообщений: 418
Регистрация: 23.1.2008
Где: Московская област ь

Репутация: 10
Всего: 17

локальный xls  на 10,3 мега
в менеджмент студио за 23 секунды   44392 строк

———————

Всё  в  порядке   —   спасибо  зарядке  !

PM MAIL   Вверх
SharedNoob
Дата 13.3.2008, 15:17 (ссылка)
| (нет голосов)
Загрузка ... Загрузка …




Быстрая цитата

Цитата

Шустрый
*

Профиль
Группа: Участник
Сообщений: 125
Регистрация: 25.6.2007
Где: UA

Репутация: 2
Всего: 5

Цитата(Magnifico @ 13.3.2008,  14:04)
для 2005 open rowset

Код

Select *  From 
Openrowset('msdasql','DRIVER={Microsoft Excel Driver (*.xls)};ReadOnly=1;DefaultDir=c:filesnames.xls', 
'Select * From [sheet1$]')

Дык а чем не устраивает это ? возвращает набор данных который лежит в ексель файле …. да дальше вороти-нехачу .

Добавлено @ 15:18
ой извеняюсь, недочитал …sql2005

Добавлено @ 15:24

ДЛЯ SQL 2000
вариант 1

Код

SELECT *
FROM OPENDATASOURCE(
'Microsoft Excel Driver (*.xls)',
'Data Source=D: ;'
)...[название файлла без расширения]

вариант 2

Код

SELECT  *
  FROM OPENROWSET  ('MSDASQL',
                    'Driver={Microsoft Excel Driver (*.xls)};
                     SourceDB=d:;
                     DefaultDir=d:;
                     SourceType=XLS;
                     Exclusive=No;
                     BackgroundFetch=Yes;
                     Collate=Russian;
                     Null=No;
                     Deleted=No;',
                     'SELECT * FROM [название файлла без расширения]')

код на работоспособность не проверял но с драйвером для DBF все пашет

Это сообщение отредактировал(а) SharedNoob — 13.3.2008, 15:27

PM MAIL ICQ Skype   Вверх
Itsys
Дата 13.3.2008, 15:41 (ссылка)
| (нет голосов)
Загрузка ... Загрузка …




Быстрая цитата

Цитата

Эксперт
***

Профиль
Группа: Завсегдатай
Сообщений: 1338
Регистрация: 21.1.2008
Где: г. Москва

Репутация: 1
Всего: 34

А DefaultDir можно задать как \serverfiles?

Это сообщение отредактировал(а) Itsys — 13.3.2008, 15:42

PM MAIL WWW Skype   Вверх
SharedNoob
Дата 13.3.2008, 15:53 (ссылка)
| (нет голосов)
Загрузка ... Загрузка …




Быстрая цитата

Цитата

Шустрый
*

Профиль
Группа: Участник
Сообщений: 125
Регистрация: 25.6.2007
Где: UA

Репутация: 2
Всего: 5

QA => F1 => поиск по указателю => OPENDATASOURCE (или OPENROWSET) => enter
и читаем. 

ps
для начала прочитайте данные с локального компьютера, а потом можно и подключить сетевой диск если что.

Это сообщение отредактировал(а) SharedNoob — 13.3.2008, 15:54

PM MAIL ICQ Skype   Вверх
Itsys
Дата 13.3.2008, 16:09 (ссылка)
| (нет голосов)
Загрузка ... Загрузка …




Быстрая цитата

Цитата

Эксперт
***

Профиль
Группа: Завсегдатай
Сообщений: 1338
Регистрация: 21.1.2008
Где: г. Москва

Репутация: 1
Всего: 34

Цитата(SharedNoob @  13.3.2008,  15:53 Найти цитируемый пост)
QA => F1 => поиск по указателю => OPENDATASOURCE (или OPENROWSET) => enter

До этого я сам догадался smile. Спасибо что напомнил, что есть такая функция в MS SQL (шутка). Ладно протестирую сообщу результаты.

Это сообщение отредактировал(а) Itsys — 13.3.2008, 16:09

PM MAIL WWW Skype   Вверх
Itsys
Дата 16.3.2008, 12:17 (ссылка)
| (нет голосов)
Загрузка ... Загрузка …




Быстрая цитата

Цитата

Эксперт
***

Профиль
Группа: Завсегдатай
Сообщений: 1338
Регистрация: 21.1.2008
Где: г. Москва

Репутация: 1
Всего: 34

Код

SELECT TOP 10 * FROM OPENROWSET(
 'MSDASQL', 
 'Driver=Microsoft Excel Driver (*.xls);DBQ=\pavlovFiles34', 
 'SELECT * FROM [LIST$]'
) as xls

Только парсит он не правильно  smile 
В файле Excel строка:

Код

New    NUM    CISBN    IDNAME    CLARICHEV    C_SERIE    CNAME    CAUTHOR    CLONGNAME    IINPACK    IPAGETOTAL    CFORMAT    CCOVER    cSizes1    iWeight1    YPRICE    CPARTITION    CSUBPRTION    CPUBLNAME    CEAN    cComplete

А он выдает:

Код

New    NULL    CISBN    NULL    NULL    C_SERIE    CNAME    CAUTHOR    CLONGNAME    NULL    NULL    CFORMAT    CCOVER    cSizes1    NULL    NULL    CPARTITION    CSUBPRTION    CPUBLNAME    CEAN    cComplete

Почему некоторые значения изменены на NULL?

PM MAIL WWW Skype   Вверх
Magnifico
Дата 16.3.2008, 14:51 (ссылка)
| (нет голосов)
Загрузка ... Загрузка …




Быстрая цитата

Цитата

Опытный
**

Профиль
Группа: Участник
Сообщений: 418
Регистрация: 23.1.2008
Где: Московская област ь

Репутация: 10
Всего: 17

Могут разные тиы данных в одном столбце:
1
2
3
4
5
6

7A  это потенциальный нулл  — ошибка преобразования

если не принципиальны типы данных: приводить столбцы  эксель  к строке

Код

Sub ПривестиКСтроке()
    Dim temp As String
    Dim str As String
      str = "'"
    For Each c In Selection
     temp = Trim(c.Value)

         c.Value = str & temp
     Next c
End Sub

———————

Всё  в  порядке   —   спасибо  зарядке  !

PM MAIL   Вверх
Itsys
Дата 16.3.2008, 22:11 (ссылка)
| (нет голосов)
Загрузка ... Загрузка …




Быстрая цитата

Цитата

Эксперт
***

Профиль
Группа: Завсегдатай
Сообщений: 1338
Регистрация: 21.1.2008
Где: г. Москва

Репутация: 1
Всего: 34

С Excel-ем сделать ничего не могу…. т.к.

Цитата(Itsys @  13.3.2008,  15:06 Найти цитируемый пост)
Потому-что это используется в интернет-магазине, написанном на perl, а файл Excel — это прайсы поставщиков, которые загружаются, сверяются с существующими товарами поставщика, корректируются цены и д.р. параметры товаров в магазине и добавляются новые — нет возможности добавить в Excel доп обработчики, т.к. файлы не наши, и обяснять как это делать каждому менеджеру после получения файла, собственно говоря не хочется

Есть друие предложения и варианты?

PS хотелось бы сделать все без вмешательства пользователей — получил файл по почте — загрузил в back-office интернет-магазина и все — дальше система сама все обрабатывет, менеджеру надо только подтверждать выполнение определнных действий.. smile

PM MAIL WWW Skype   Вверх
Magnifico
Дата 17.3.2008, 18:48 (ссылка)
| (нет голосов)
Загрузка ... Загрузка …




Быстрая цитата

Цитата

Опытный
**

Профиль
Группа: Участник
Сообщений: 418
Регистрация: 23.1.2008
Где: Московская област ь

Репутация: 10
Всего: 17

попробуй с  cast(ПОЛЕ as nvarchar(255))  поиграться

Код

select  [ЗДЕСЬ]   from openrowset(
 'MSDASQL', 
 'Driver=Microsoft Excel Driver (*.xls);DBQ=\pavlovFiles34', 
 'SELECT   [ИЛИ ЗДЕСЬ]  FROM [LIST$]'
) as xls

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

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

———————

Всё  в  порядке   —   спасибо  зарядке  !

PM MAIL   Вверх
Itsys
Дата 17.3.2008, 21:21 (ссылка)
| (нет голосов)
Загрузка ... Загрузка …




Быстрая цитата

Цитата

Эксперт
***

Профиль
Группа: Завсегдатай
Сообщений: 1338
Регистрация: 21.1.2008
Где: г. Москва

Репутация: 1
Всего: 34

Проблема только в том, что исходный файл произвольный, т.е. изначально не известно даже сколько колонок в файле, заголовки полей моут стоять в любой строке файла — моут в первой, а могут и в 20, так как в приведенном выше примере, и, первым делом чего я хочу сделать, так это получить хотябы список полей, а он мне вместо заголовка поля выдает NULL.

Есть ли способ CASTить все поля запроса в VARCHAR без их конкретного указания, ну типа CAST(* AS VARCHAR(5000))?

PM MAIL WWW Skype   Вверх
Beltar
Дата 18.3.2008, 08:42 (ссылка)
| (нет голосов)
Загрузка ... Загрузка …




Быстрая цитата

Цитата

Опытный
**

Профиль
Группа: Участник
Сообщений: 627
Регистрация: 11.1.2006

Репутация: нет
Всего: 7

Возможно, имеет смысл накидать простейшую софтину в DelphiBuilderVS в которой просто открывать файл и указывать самому какие столбцы и с какой строчки импортировать и в какое поле БД. И пусть эта софтина все в базу кидает. Может этот процесс займет несколько минут, но ведь вы явно не по 50 файлов в день получаете. А пытаться все предусмотреть в том числе как будет названо поле с названием товара, например, «товар», «наименование» или даже «название фильма», если торгуете DVD-дисками, нереально.
Импорт в сам Excel текстовых файлов сделан именно так.

———————

Опытный программист на C++ легко решает любые не существующие в Паскале проблемы. smile(с) я, хотя может и нет
Пищущий на C++ мужик. Даже если это мужик сидит в написанном на Delphi и жрущем паскалевскую библиотеку билдере.

PM MAIL   Вверх
Magnifico
Дата 18.3.2008, 16:27 (ссылка)
| (нет голосов)
Загрузка ... Загрузка …




Быстрая цитата

Цитата

Опытный
**

Профиль
Группа: Участник
Сообщений: 418
Регистрация: 23.1.2008
Где: Московская област ь

Репутация: 10
Всего: 17

есть еще опции HDR=Yes;IMEX=1;

http://connectionstrings.com/?carrier=excel

«HDR=Yes; считает первую строку заголовком полей
«IMEX=1;» интерпретирует данные как текст

———————

Всё  в  порядке   —   спасибо  зарядке  !

PM MAIL   Вверх
Magnifico
Дата 18.3.2008, 17:54 (ссылка)
| (нет голосов)
Загрузка ... Загрузка …




Быстрая цитата

Цитата

Опытный
**

Профиль
Группа: Участник
Сообщений: 418
Регистрация: 23.1.2008
Где: Московская област ь

Репутация: 10
Всего: 17

используй лучше оле дб он покорректней работает

Код

select * 
from openrowset('Microsoft.Jet.OLEDB.4.0'
, 'Excel 8.0; HDR=YES; IMEX=1;Database=C:my.xls'
, [sheet1$])

Select *
FROM OPENDATASOURCE('Microsoft.Jet.OLEDB.4.0', 'Data Source=C:my.xls;
Extended Properties="Excel 8.0;HDR=Yes;"')...[sheet1$]

———————

Всё  в  порядке   —   спасибо  зарядке  !

PM MAIL   Вверх
Itsys
Дата 18.3.2008, 20:50 (ссылка)
| (нет голосов)
Загрузка ... Загрузка …




Быстрая цитата

Цитата

Эксперт
***

Профиль
Группа: Завсегдатай
Сообщений: 1338
Регистрация: 21.1.2008
Где: г. Москва

Репутация: 1
Всего: 34

Сработало!!!!

Beltar, Обработка на perl уже написана, толь проблема в том, что грузится очень долго, вот и ищу возможность быстрее обработать данные.

PM MAIL WWW Skype   Вверх
Itsys
Дата 19.3.2008, 00:24 (ссылка)
| (нет голосов)
Загрузка ... Загрузка …




Быстрая цитата

Цитата

Эксперт
***

Профиль
Группа: Завсегдатай
Сообщений: 1338
Регистрация: 21.1.2008
Где: г. Москва

Репутация: 1
Всего: 34

Только обрадовался…. по условию я не знаю название листа, и мне надо выбрать первый из существующих. Как указать не название листа sheet1$, а его порядковый номер?

PM MAIL WWW Skype   Вверх
Magnifico
Дата 19.3.2008, 11:44 (ссылка)
| (нет голосов)
Загрузка ... Загрузка …




Быстрая цитата

Цитата

Опытный
**

Профиль
Группа: Участник
Сообщений: 418
Регистрация: 23.1.2008
Где: Московская област ь

Репутация: 10
Всего: 17

Код

Sub ПеребратьИменаЛистов()
Dim XLSFile As String
Dim i As Integer
i = 1
XLSFile = "C:filesnamesw.xls"

Workbooks.Open XLSFile

Dim ws As Worksheet
For Each ws In Worksheets

        MsgBox "Имя " & i & " -го листа: " & ws.Name 

         Debug.Print "Имя " & i & " -го листа: " & ws.Name
     i = i + 1
Next ws
End Sub

———————

Всё  в  порядке   —   спасибо  зарядке  !

PM MAIL   Вверх
Itsys
Дата 19.3.2008, 14:30 (ссылка)
| (нет голосов)
Загрузка ... Загрузка …




Быстрая цитата

Цитата

Эксперт
***

Профиль
Группа: Завсегдатай
Сообщений: 1338
Регистрация: 21.1.2008
Где: г. Москва

Репутация: 1
Всего: 34

Вопрос только в том, как это запустить, а потом еще и желательнов запрос передать… мне сами именя листов не нужны, мне надо выбирать данные из первого листа в файле, может можно это как-нибудь задать не перебирая с помощью VB файл?

И так

Код

select * 
from openrowset('Microsoft.Jet.OLEDB.4.0'
, 'Excel 8.0; HDR=YES; IMEX=1;Database=C:my.xls'
, [1])

и так

Код

select * 
from openrowset('Microsoft.Jet.OLEDB.4.0'
, 'Excel 8.0; HDR=YES; IMEX=1;Database=C:my.xls'
, [sheet[1]$])

пробовал…

PM MAIL WWW Skype   Вверх
Magnifico
Дата 19.3.2008, 20:49 (ссылка)
| (нет голосов)
Загрузка ... Загрузка …




Быстрая цитата

Цитата

Опытный
**

Профиль
Группа: Участник
Сообщений: 418
Регистрация: 23.1.2008
Где: Московская област ь

Репутация: 10
Всего: 17

Цитата
Вопрос только в том, как это запустить

excel   -> (alt + F11)(Редактор VB) — > insert ->module ->копироватьКодСюда ->правим пути в коде ->RUN

Ole automation это единственный способ добраться к свойствам и методам Эксель
Все языки программирования интегрируются с Эксель именно  так, (и ничего другого кроме вышеприведенного кода не придумаешь)

Никаким запросом имена листов узнать невозможно
Эксель не база данных ,и нет возможности получить Информационную схему

Цитата
желательно в запрос передать

Если хочешь помучиться в 2000 есть расширенные хранимые процедуры на c++ (Visual Studio 6  )
(у меня на с++ «аллергия»)

В БОЛЕ набрать OLE Automation там есть какие то методы работы , можно вызывать VBA методы и св-ва  (не разбирался) 
ищи хороший пример 

Или писать прогу на любом языке ,опять же интеграция с Эксель(код вверху)
подключение к sql server ->  передача параметров из встроенного VBA  в  хранимую процедуру (с openrowsetoM) 

Цитата
мне надо выбирать данные из первого листа в файле

Вот из за этой казалось мелочи придется сильно помучиться (от Vba не убежишь)

———————

Всё  в  порядке   —   спасибо  зарядке  !

PM MAIL   Вверх
Itsys
Дата 19.3.2008, 21:36 (ссылка)
| (нет голосов)
Загрузка ... Загрузка …




Быстрая цитата

Цитата

Эксперт
***

Профиль
Группа: Завсегдатай
Сообщений: 1338
Регистрация: 21.1.2008
Где: г. Москва

Репутация: 1
Всего: 34

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

Еще раз спасибо.

PM MAIL WWW Skype   Вверх
Magnifico
Дата 19.3.2008, 23:11 (ссылка)
| (нет голосов)
Загрузка ... Загрузка …




Быстрая цитата

Цитата

Опытный
**

Профиль
Группа: Участник
Сообщений: 418
Регистрация: 23.1.2008
Где: Московская област ь

Репутация: 10
Всего: 17

в 2005 это работает:

Код

declare @file_name varchar(255), @h_application int, @hr int,@h_workbook int ,
@data varchar(255),@source varchar(255),@description varchar(255)

set @file_name = 'c:filesserge.xls'

exec @hr = sp_OACreate 'Excel.Application', @h_application OUT

exec @hr = sp_OAMethod @h_application, 'Application.workbooks.Open', @h_workbook OUT , @file_name 
exec @hr = sp_OAGetProperty @h_application, 'Workbooks(1).Sheets(1).Name', @data OUT

SELECT @data as [dat]
exec sp_OAMethod @h_application, 'Quit'
exec @hr=sp_OADestroy @h_application

--set @data ='NewSheet1';

declare @SQL  nvarchar(4000)
set @SQL = 
'SELECT * FROM OPENROWSET(''Microsoft.Jet.OLEDB.4.0''' +','+'''Excel 8.0;HDR=Yes;IMEX=1;Database=C:filesserge.xls'''+','+ '''Select * From ['+ @data +'$]'')'

exec(@sql)

———————

Всё  в  порядке   —   спасибо  зарядке  !

PM MAIL   Вверх
Itsys
Дата 19.3.2008, 23:55 (ссылка)
| (нет голосов)
Загрузка ... Загрузка …




Быстрая цитата

Цитата

Эксперт
***

Профиль
Группа: Завсегдатай
Сообщений: 1338
Регистрация: 21.1.2008
Где: г. Москва

Репутация: 1
Всего: 34

Код

[quote=Magnifico, 19.3.2008,  23:11, post1447877]declare @file_name varchar(255), @h_application int, @hr int,@h_workbook int ,
@data varchar(255),@source varchar(255),@description varchar(255)

set @file_name = 'c:filesserge.xls'

exec @hr = sp_OACreate 'Excel.Application', @h_application OUT

exec @hr = sp_OAMethod @h_application, 'Application.workbooks.Open', @h_workbook OUT , @file_name 
exec @hr = sp_OAGetProperty @h_application, 'Workbooks(1).Sheets(1).Name', @data OUT

SELECT @data as [dat]
exec sp_OAMethod @h_application, 'Quit'
exec @hr=sp_OADestroy @h_applicatio[/quote]

Насколько я понимаю, это все работает не очень быстро  smile

PM MAIL WWW Skype   Вверх
Magnifico
  Дата 20.3.2008, 09:27 (ссылка)
| (нет голосов)
Загрузка ... Загрузка …




Быстрая цитата

Цитата

Опытный
**

Профиль
Группа: Участник
Сообщений: 418
Регистрация: 23.1.2008
Где: Московская област ь

Репутация: 10
Всего: 17

Это работает мгновенно! 
Получить имя первого листа  первой открытой книги- какая же здесь может быть нагрузка

Код

exec @hr = sp_OAGetProperty @h_application, 'Workbooks(1).Sheets(1).Name', @data OUT

я просто незнаю будет ли работать в 2000?

Что то ты рано сдался! Это то что доктор прописал !!!!!!!!!!!!!!!!

Одна тонкость Workbooks(1).Sheets(1).Name   -мы получаем имя первого листа  первой открытой книги,если будет открыта другая книга,
допустим локально , а потом будет выполнен этот запрос -то  подхватит именно эту книгу ,а

Код

exec @hr = sp_OAMethod @h_application, 'Application.workbooks.Open', @h_workbook OUT , @file_name

будет уже второй…
Из этого следует лучше обращаться к книге по имени (надюсь её название хотя бы известно или тоже скрипт писать ,перебирая все 
эксель файлы?  smile  )

Код

Workbooks("Names.xls").Sheets(1).Name

в 2000  OLE Automation должно как то включаться (поиск)

———————

Всё  в  порядке   —   спасибо  зарядке  !

PM MAIL   Вверх
Itsys
Дата 20.3.2008, 17:41 (ссылка)
| (нет голосов)
Загрузка ... Загрузка …




Быстрая цитата

Цитата

Эксперт
***

Профиль
Группа: Завсегдатай
Сообщений: 1338
Регистрация: 21.1.2008
Где: г. Москва

Репутация: 1
Всего: 34

Ну попробую…. насколько я знаю, OLE в принципе не самый быстрый способ, т.к. при его использовании загружается приложение сервер — это раз, считывается в память файл — это два и только потом можно из него чего-нибудь получить.

PM MAIL WWW Skype   Вверх
0 Пользователей читают эту тему (0 Гостей и 0 Скрытых Пользователей) 0 Пользователей: « Предыдущая тема | MS SQL Server | Следующая тема »

  1. Max Human

    Max Human
    New Member
    Пользователи

    Регистрация:
    20 июн 2014
    Сообщения:
    18

    Всем привет,

    Ситуация такая: запускаю парсинг, на 250+ страниц, из них 8 заканчиваются с ошибками, при том, что в браузере все хорошо грузится.

    В результате парсинга, получаю:
    — 7 страниц с ошибкой: «файл не сохранен: результирующий документ оказался пустым»

    — при этом, нужная инфа парсится и сохраняется в CSV — я растерян;​

    — 1 страница с ошибкой: «файл не сохранен: программе не удалось загрузить страницу»

    — запись в CSV отсутствует — это логично, вель есть ошибка. но в браузере грузится ок;​

    Вопрос:
    — можно, что то сделать, что бы не было ошибок и все записывалось в CSV?
    — если все-таки получаю ошибку — как сохранить в CSV ссылку и слово «ошибка», что бы я видел, что есть таковая?

    **Скрытое содержимое: доступно при наличии 1 постов.**

    Спасибо.


  2. Root

    Root
    Администратор
    Администратор

    Регистрация:
    10 мар 2010
    Сообщения:
    14.763
    Город:
    Барнаул

    Здравствуйте.

    Пробуйте парсить в 1 поток (может этот сайт не всегда отвечает на частые запросы).

    Чтобы игнорировать «файл не сохранен: программе не удалось загрузить страницу» и выводить что-либо на подобных страницах, например <CD_DOCURL!> (ссылка на текущий WEB-документ, который парсим), нажимаем ctrl+6 и вставляем туда <CD_DOCURL!>.

    С уважением к вам, Сергей…


  3. Max Human

    Max Human
    New Member
    Пользователи

    Регистрация:
    20 июн 2014
    Сообщения:
    18

    «нажимаем ctrl+6 и вставляем туда <CD_DOCURL!>»
    — если я сохраняю результаты парсинга в CSV — как указать ячейку, в которой должен вывестись <CD_DOCURL!>, замещающий ошибку? или как-то автоматом сохранит?


  4. Root

    Root
    Администратор
    Администратор

    Регистрация:
    10 мар 2010
    Сообщения:
    14.763
    Город:
    Барнаул

    Посчитать, в какой столбец вам нужно вставить и поставить разделители столбцов:


  5. Min-Z-Drav

    Min-Z-Drav
    New Member
    Пользователи

    Регистрация:
    14 янв 2015
    Сообщения:
    32

    «файл не сохранен: результирующий документ оказался пустым»
    тоже самое и у меня… парсю в один поток…

    самое главное при предпросмотре все нормально загружается… а когда начинаю парсинг ошибки!

    Попытался без php загрузилось нормально, но когда совмещаю php и загрузку файлов… выдает ошибку!

    Последнее редактирование: 14 май 2015


  6. Kreol

    Kreol
    Модератор
    Команда форума
    Модератор

    Регистрация:
    6 янв 2013
    Сообщения:
    2.645

    1) Вы пробовали передавать cookies?
    2) 8 ошибок на 250 товаров это не так много, это даже меньше 1%
    3) Поставьте меньше потоков, либо добавьте паузу


  7. Min-Z-Drav

    Min-Z-Drav
    New Member
    Пользователи

    Регистрация:
    14 янв 2015
    Сообщения:
    32

    1) Зачем передавать, если при предпросмотре.. все отлично
    2) у меня в проекте 18 ссылок и все с ошибками…. 100%
    3) Потоков 1

    У меня вопрос… можно ли так сделать:
    <скрипт>код разный
    <загрузка картинки>
    </скрипт> ?

    Мне кажется проблема иза этого…

    Если сделать так:

    <скрипт>код разный
    </скрипт>
    <загрузка картинки>

    То все отлично загружается… и скрипт срабатывает и картинка загружается… только приходиться немного дописать код в скрипте.. дабы название картинки записывало в базу!

Поделиться этой страницей


Форум по парсингу сайтов и интернет магазинов

val_basket

Guest


  • #1

Ошибка при парсинге XML-файла.

Доброго времени суток!

Если можно, объясните, пожалуйста, как обойти такую проблему.

Есть XML-файл. Довольно маленький (примерно 640К). Все, что он содержит — это тэги с инфой о товарах, которые надо тупо вставлять в MySQL. Примерно 650 записей по 20 полей на каждую. Задача тривиальная. Но! На определенном этапе скрипт вылетает с ошибкой:
PHP Fatal error: Allowed memory size of 8388608 bytes exhausted (tried to allocate 45 bytes) in /www/…/functions.php on line NNN

Т.е. провайдер ограничивает данные 8МБ. Но как файл в 640КБ может занять 8МБ? Т.е. мой скрипт записывает примерно 340 записей в БД, а потом обрывается 🙁 Подскажите, пожалуйста, можно ли это как-то обойти?

Заранее спасибо.

  • #2

Скорее всего файл парсится с использованием dom-функций.
Дело в том, что объектная модель документа занимает в памяти гораздо больше места, чем сам документ.
Вариантов решения проблемы два:
1) Разбивать исходный документ на несколько более меньших по объему данных. Это решение «влоб».
2) Более «правильный» вариант — смена API. То есть использование SAX-модели для обработки документа.

val_basket

Guest


  • #3

Да, использую dom-функции… Т.к. с XML-ем сталкиваюсь крайне редко, других попросту не знаю 🙁

Если не сложно, подскажите, где можно почитать что-то типа «SAX для чайников» 😉

  • #5

в мануале читать надо начиная с
http://php.net/manual/en/ref.xml.php

val_basket

Guest


  • #6

Спасибо всем огромное!
Более-менее разобрался. Этого хватило для решения задачи :)

Только еще один вопрос:
Код получился такой:
==========================
$xml_parser = xml_parser_create();
xml_set_element_handler($xml_parser, «startElement», «endElement»);
xml_set_character_data_handler($xml_parser, «textData»);
$xml = file_get_contents($file);
if(!xml_parse($xml_parser, $xml))
{
// Сообщение об ошибке
}
xml_parser_free($xml_parser);
==========================
И если в структуре документа где-то появляется ошибка, то он ее выдает только когда до нее дойдет. Можно ли как-то заранее проверить, что документ без ошибок и только после этого его парсить?

  • #7

;))) почитай пожалуйста чем отличаются
valid документы
от well-formed

для того чтобы узнать является ли документ well-formed надо его прочитать ВЕСЬ… в любом случае и распарсить хотя бы через SAX

для того, чтобы проверить является ли документ valid, используются инструменты валидации вроде DTD и XMLSchema

val_basket

Guest


  • #8

Ага, понЯл…
Еще раз всем спасибо. Надеюсь не сильно насмешил вопросами 😉 Просто, правда, с XML-ем ОЧЕНЬ редко сталкиваюсь…

  • #9

;) нормальные вопросы повторяющиеся периодически у всех
но по крайней мере ты вменяемый

Ошибка парсинга xml документа в Сбере

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

Ошибка парсинга данных

Ошибка парсинга xml возникает в бизнес-приложении от Сбера при загрузке электронного документа, выгруженного из 1С-программы. Решение проблемы укладывается в несколько шагов:

  1. Любым текстовым редактором открыть сохраненный реестр.
  2. Изменить верхнюю строку в кодировке на 1251, загрузить в Сбер с пометкой «кодировка=windows».

После обновления документа исходный файл система Сбера не принимает, зато измененный формат открывается легко.

Не загружаются в сбербанк бизнес платежные поручения

Здравствуйте.
Сегодня столкнулись с такой проблемой — не загружаются платежные поручения в сбербанк бизнес: обновили до последнего релиза (3.0.85.25) и установили все заплатки какие есть, но ошибка при попытки импортировать в самом сбербанк бизнес осталась:

ЖУРНАЛ ИМПОРТА
Импорт документов завершён
с предупреждением — Файл не удовлетворяет шаблону:
отсутствуют поля: «Наименование», «КПП», «ИНН», «Счет №», «Комментарий», «БИК банка»
лишние поля: «1CClientBankExchange»

Обработано документов — 0
Из них:
успешно импортировано — 0
отклонено — 0

и соответственно ничего не загружает.
До этого все нормально загружало и до сегодняшнего дня проблем не было.
Программу обновили, справочники тоже(в том числе банков), но ничего не помогает.
Конфигурация типовая, никаких изменений, расширений и т.д не вносили в нее.
Убедительно прошу, подскажите — что делать?

Сегодня в 11:00 не работает Сбербанк онлайн из-за кривого XML

Сегодня в 11:00 не работает Сбербанк онлайн из-за кривого XMLТолько что, как стало нам известно, сегодня, 30.06.2014 в 11:00 по Мск. не работает Сбербанк онлайн. Именно не пускает пользователей в Личный кабинет. Причиной этого стала ошибка парсинга XML файла, в теле которого находится непонятный символ или просто не закрыта скобка. Косвенными признаками стало то, что я пытаясь зайти в ЛК Сбербанк онлайн — на их страничке увидел незавершённый текст, а именно: «Обратите внимание:» и далее пусто, так же как и в соседних вкладках. Я уже обратил внимание, а толку с этого. Далее, вводим логин и пароль и выскакивает окошко для ввода SMS-пароля, но смс не приходит! Всё потому, что XML-файл с ошибкой. Откуда я взял этот XML и почему? Смотрим принтскин N2. Я попытался зайти в корень сайта — тут явная ошибка. Очевидно, что часть новости, назовём её так — выводится по адресу: https://online.sberbank.ru/CSAFront/index.do и ничего не происходит. Если перейди в корень сайта — то там явный баг, со-стороны разрабов сайта. И это длилось 45 минут. Явная ошибка при разборе XML-файла на сайте СбербанкаСбербанк сидит на деньгах, на миллиардах и не могут до-сих-пор систему резервного восстановления, блин, ну хоть сайта своего сделать. За что только деньги платим. А если так с карточками будет или банкоматами — отказавшими в один прекрасный момент? А? (Пока писал статью, сайт починили) Скрины в доказательство выкладываю. PS: И это за регламентом 15 минут!

Не а НЕ ПОЧИНИЛИ! Время 11:55! Смотрим скриншот N3: Ошибка синтаксического анализа XML: элемент не найден Адрес: https://online.sberbank.ru/PhizIC/CSAFrontLogin.do?AuthToken=2a1338ef19b5cf7557003242969bc34b
Строка 1, символ 1:

https://online.sberbank.ru/PhizIC/CSAFrontLogin.do?AuthToken=2a1338ef19b5cf7557003242969bc34b

На морде сайта — всё вроде гуд более менее стало, ввожу логин, пароль, — вместо окна с смс — вываливается страница с такой ошибкой. Опять XML Мдаааа.. А мне между прочим надо деньги платить, кредит на машину… А по чьей вине будут пени.

PS: Вот люди-то «порадуются», сейчас прайм-тайм настанет в обед, все платить будут — а Сбербанк онлайн валяется, не по детски. Попробуйте, войдите если можете в ЛК?

Just as it became known to us today , 30.06.2014 at 11:00 am GMT. Sberbank does not work online . It will not allow users to Account . The reason for this was an error parsing the XML file in the body which is not understood symbol or simply closed parenthesis . Indirect signs is that I try to go to LC Savings Online — on their page saw an unfinished text , namely: «Note :» and then empty, as well as in adjacent tabs. I have noticed a sense from this . Next, enter the username and password and jumps out a window to enter the SMS- password, but sms comes ! That’s because the XML- file failed. How should I take this XML and why? Enjoying printskin N2. I tried to go to the root of the site — there is a bug. Obviously, part of the news, so let’s call it — is displayed at : https://online.sberbank.ru/CSAFront/index.do and nothing happens . If you cd to the root of the site — is there an obvious bug with hand — developers site. And it lasted 45 minutes. Explicit Error parsing XML- file upload SberbankaSberbank sitting on the money , with billions and can not pre- date — system backup recovery then , damn it, well, at least make your site . For that only pay money . And if so will be with cards or ATM — refused at one point ? Huh? ( While writing the article , the site was repaired ) Screens in evidence spread. PS: And this time-limit 15 minutes!

Not as he has not repaired ! Time 11:55 ! See screenshot N3: Error parsing XML: no element found Location : https://online.sberbank.ru/PhizIC/CSAFrontLogin.do?AuthToken=2a1338ef19b5cf7557003242969bc34b
Line 1 , character 1 :

The muzzle has a website — everything seems to become less buzzing , I enter login, password, — instead of a window with sms — page falls out with this error . Again Mdaaaa XML .. And I need the money the way to pay the loan on the car … And whose fault will be fine .

PS: Here is something people « rejoice», now primetime come to dinner , all will pay — and Sberbank Online lying , not childish . Try , if you can sign in LK ?

0 0 голоса
Рейтинг статьи
Подписаться
Уведомить о
guest

0 комментариев
Старые
Новые Популярные
Межтекстовые Отзывы
Посмотреть все комментарии

А вот еще интересные материалы:

  • Яшка сломя голову остановился исправьте ошибки
  • Ясность цели позволяет целеустремленно добиваться намеченного исправьте ошибки
  • Ясность цели позволяет целеустремленно добиваться намеченного где ошибка
  • Не удалось загрузить файл повторите попытку или сообщите об ошибке
  • Не удалось загрузить сообщение об ошибке инстаграм