OberonCore
https://forum.oberoncore.ru/

Пример считывания данных из таблиц Excel
https://forum.oberoncore.ru/viewtopic.php?f=35&t=3274
Страница 1 из 1

Автор:  Иван Денисов [ Воскресенье, 20 Февраль, 2011 09:57 ]
Заголовок сообщения:  Пример считывания данных из таблиц Excel

Для различных задач может понадобится чтение данных из документа MS Excel.
В родной комплектации BlackBox Component Builder имеется подсистема Ctl, которая предназначена для работы с документами MS Office.
Небольшой пример использования этой подсистемы для чтения столбца чисел из таблицы xls прилагаю к этому посту.

Вложения:
Комментарий к файлу: Модуль и лист xls
ExcelRead.zip [2.77 КБ]
Скачиваний: 436

Автор:  Ярослав Романченко [ Воскресенье, 20 Февраль, 2011 10:34 ]
Заголовок сообщения:  Re: Пример считывания данных из таблиц Excel

В качестве альтернативы, можно читать файлы Excel через ADO, как базу данных :)

Автор:  Евгений Темиргалеев [ Воскресенье, 20 Февраль, 2011 12:04 ]
Заголовок сообщения:  Re: Пример считывания данных из таблиц Excel

А ещё лучше читать из CSV-текста. Чтобы ни быть привязанным ни к чему, кроме CSV-читалки, которую на ББ без проблем накатать.

Автор:  nail_kh [ Суббота, 30 Апрель, 2011 00:33 ]
Заголовок сообщения:  Re: Пример считывания данных из таблиц Excel

Пример замечательный, кроме одного "но". После выполнения команды app.Quit() Excel из памяти не выгружается. Приходится процесс удалять вручную через диспетчер задач. Проблема эта не связана с Блекбосом. Провел поиск в гугле. Аналогичная проблема возникает и в других языках.
Народ изощряется отлавливанием процесса и "убиванием" его с помощью Windows API.
Хотелось бы однако найти более изящное решение. Может кто уже имел опыт?

Автор:  Евгений Темиргалеев [ Суббота, 30 Апрель, 2011 01:10 ]
Заголовок сообщения:  Re: Пример считывания данных из таблиц Excel

nail_kh писал(а):
Народ изощряется отлавливанием процесса и "убиванием" его с помощью Windows API.
... Может кто уже имел опыт?
ага :) viewtopic.php?f=90&t=3192

Автор:  nail_kh [ Суббота, 30 Апрель, 2011 02:01 ]
Заголовок сообщения:  Re: Пример считывания данных из таблиц Excel

Евгений, спасибо за информацию. Вроде то что нужно.

Автор:  Иван Денисов [ Пятница, 23 Март, 2012 02:18 ]
Заголовок сообщения:  Re: Пример считывания данных из таблиц Excel

Интересно, что с MS Word такой проблемы нет: app.Close(NIL, NIL, NIL); убивает и процесс.

Но для многих задач это не очень критично, поскольку при закрытии ББ, происходит видимо освобождение переменных и процесс закрывается вместе с ББ, также происходит при выгрузке модуля.

При множественном использовании, чтобы не происходило размножение процесса и утечка памяти на большое количество открытых приложений Excel нужно использовать конструкцию
Код:
IF app = NIL THEN
   app := Excel.NewApplication();
END;

Страница 1 из 1 Часовой пояс: UTC + 3 часа
Powered by phpBB® Forum Software © phpBB Group
https://www.phpbb.com/