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

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

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

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

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

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

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

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

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

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

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

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

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


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

Для постановки любого другого диагноза - как минимум требуется код (или тест кейс), точная строчка на которой падает и сообщение об ошибке (если есть, если нет, то как это ошибка проявяется)
...
Рейтинг: 0 / 0
Как бороться с кривым MS Office 2016?
    #39909987
МихаилР
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
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
Как бороться с кривым MS Office 2016?
    #39910056
Dima T
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Я не зря про Excel 97 упомянул, подход на нем обкатывался и 20 лет работал. Код шаблонный, открыть файл и читать ячейки справа налево, сверху вниз, сначала найти шапку таблицы, затем читать тело, если 20 пустых строк подряд - конец файла. По этому шаблону написано сотни парсеров и все работают годами.

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

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

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


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