Гость
Форумы / Программирование [игнор отключен] [закрыт для гостей] / Как бороться с кривым MS Office 2016? / 15 сообщений из 15, страница 1 из 1
27.12.2019, 20:49
    #39909317
Dima T
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Как бороться с кривым MS Office 2016?
Сегодня полдня пытались настроить импорт из эксель файла через COM/OLE. Наша прога читает пустоту, иногда одну строку прочитает, иногда две, один раз целиком все прочиталось.
У клиента MS Office 2016, у нас тоже MS Office 2016, у нас работает, сверили версии - совпадают до последней цифры. Перепробовали кучу всяких вариантов, не помогло.

Воткнули Sleep(2000) между открытием файла экселем и нашим чтением ... заработало, стабильно ... MS, зачем такие приколы устраивать?

Вопрос: как нынче правильно парсить эксель файлы?
...
Рейтинг: 0 / 0
27.12.2019, 21:52
    #39909325
miksoft
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Как бороться с кривым MS Office 2016?
Dima T
как нынче правильно парсить эксель файлы?
Как вариант - распаковывать архив и разбирать XML.
...
Рейтинг: 0 / 0
28.12.2019, 11:24
    #39909398
Dima T
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Как бороться с кривым MS Office 2016?
miksoft
Dima T
как нынче правильно парсить эксель файлы?
Как вариант - распаковывать архив и разбирать XML.

И в итоге напишешь свой парсер. Наверно уже есть готовые.
...
Рейтинг: 0 / 0
28.12.2019, 20:24
    #39909484
Изопропил
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Как бороться с кривым MS Office 2016?
Dima T
Наверно уже есть готовые

Есть, причем в исходниках
...
Рейтинг: 0 / 0
28.12.2019, 21:33
    #39909498
Akina
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Как бороться с кривым MS Office 2016?
Dima T
Воткнули Sleep(2000) между открытием файла экселем и нашим чтением ... заработало, стабильно ... MS, зачем такие приколы устраивать?
А в чём прикол-то? Открытие - процесс асинхронный, статус вы не опрашиваете, вам вотпрямщас содержимое подавай... а что делать СОМ-серверу, если данных ещё нету? а вот что есть, то он, как честная Маша, и отдаёт.
...
Рейтинг: 0 / 0
29.12.2019, 19:15
    #39909634
Dima T
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Как бороться с кривым MS Office 2016?
Akina
Dima T
Воткнули Sleep(2000) между открытием файла экселем и нашим чтением ... заработало, стабильно ... MS, зачем такие приколы устраивать?
А в чём прикол-то? Открытие - процесс асинхронный, статус вы не опрашиваете, вам вотпрямщас содержимое подавай... а что делать СОМ-серверу, если данных ещё нету? а вот что есть, то он, как честная Маша, и отдаёт.

Прикол в том что начиная с MS Office 97 работало, а тут перестало. А что делать вроде понятно: подождать пока данные подгрузятся.
...
Рейтинг: 0 / 0
29.12.2019, 19:16
    #39909635
Dima T
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Как бороться с кривым MS Office 2016?
Изопропил
Dima T
Наверно уже есть готовые

Есть, причем в исходниках

Как называется?
...
Рейтинг: 0 / 0
29.12.2019, 19:35
    #39909639
mayton
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Как бороться с кривым MS Office 2016?
Похоже на гонки файловых блокировок. Первый поток открывает файл с определёнными атрибутами открытия.
Все остальные потоки - не успев обламываются.
...
Рейтинг: 0 / 0
29.12.2019, 23:46
    #39909684
Изопропил
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Как бороться с кривым MS Office 2016?
Dima T
Изопропил
пропущено...

Есть, причем в исходниках

Как называется?

https://sheetjs.com/ например

и под браузеры и под nodejs
...
Рейтинг: 0 / 0
30.12.2019, 16:05
    #39909936
Leonid Kudryavtsev
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Как бороться с кривым MS Office 2016?
Откуда Вы взяли, что открытие в каких-то версиях стало асинхронным?
можно ссылку на документацию?
...
Рейтинг: 0 / 0
30.12.2019, 16:43
    #39909960
Dima T
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Как бороться с кривым MS Office 2016?
Leonid Kudryavtsev
Откуда Вы взяли, что открытие в каких-то версиях стало асинхронным?
можно ссылку на документацию?

А как еще объяснить такое поведение и лечение 22050550 ?
...
Рейтинг: 0 / 0
30.12.2019, 17:03
    #39909976
МихаилР
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Как бороться с кривым MS Office 2016?
Dima T
А как еще объяснить такое поведение и лечение 22050550 ?


Ну для начала было бы не плохо увидеть код (и пример данных), который воспроизводит ситуацию. Желательно - минимальный (чтобы не разбираться в вашей бизнес-логике).
После этого можно будет попытаться что-то ответить.
...
Рейтинг: 0 / 0
30.12.2019, 17:09
    #39909981
Leonid Kudryavtsev
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Как бороться с кривым MS Office 2016?
Сферичность коня в вакууме объясняется просто - у коня болит живот и его пучит

Для постановки любого другого диагноза - как минимум требуется код (или тест кейс), точная строчка на которой падает и сообщение об ошибке (если есть, если нет, то как это ошибка проявяется)
...
Рейтинг: 0 / 0
30.12.2019, 17:15
    #39909987
МихаилР
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Как бороться с кривым MS Office 2016?
Dima T
И в итоге напишешь свой парсер. Наверно уже есть готовые.

Да, и их не мало.
Правда, большинство под .Net.
Из того с чем сталкивался (если мы про .xlsx и бесплатные библиотеки):
  • https://github.com/OfficeDev/Open-Xml-Sdk - достаточно низкоуровневый парсер всех OpenXML форматов. Поддерживает почти всё, но использовать... иногда хочется застрелиться.
  • https://github.com/closedxml/closedxml - очень классная обертка над OpenXML - предлагает программную модель почти как у самого Office. Но поддерживает только Excel и довольно прожорлива по ресурсам (т.к. строит параллельную структуру в памяти).
  • https://github.com/JanKallman/EPPlus - говорят, очень шустрая и нетребовательная к памяти библиотека (хороша для больших объемов).
...
Рейтинг: 0 / 0
30.12.2019, 20:24
    #39910056
Dima T
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Как бороться с кривым MS Office 2016?
Я не зря про Excel 97 упомянул, подход на нем обкатывался и 20 лет работал. Код шаблонный, открыть файл и читать ячейки справа налево, сверху вниз, сначала найти шапку таблицы, затем читать тело, если 20 пустых строк подряд - конец файла. По этому шаблону написано сотни парсеров и все работают годами.

PS Мне в личку подсказали как решать проблему (проверять Application.ready ), и я теперь понимаю почему в личку.

МихаилР, спасибо за ссылки.

Топик закрываю.
...
Рейтинг: 0 / 0
Форумы / Программирование [игнор отключен] [закрыт для гостей] / Как бороться с кривым MS Office 2016? / 15 сообщений из 15, страница 1 из 1
Целевая тема:
Создать новую тему:
Автор:
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


Просмотр
0 / 0
Close
Debug Console [Select Text]