OberonCore

Библиотека  Wiki  Форум  BlackBox  Компоненты  Проекты
Текущее время: Пятница, 10 Июль, 2020 17:04

Часовой пояс: UTC + 3 часа




Начать новую тему Ответить на тему  [ Сообщений: 7 ] 
Автор Сообщение
СообщениеДобавлено: Воскресенье, 20 Февраль, 2011 09:57 
Аватара пользователя

Зарегистрирован: Четверг, 08 Октябрь, 2009 15:00
Сообщения: 2764
Для различных задач может понадобится чтение данных из документа MS Excel.
В родной комплектации BlackBox Component Builder имеется подсистема Ctl, которая предназначена для работы с документами MS Office.
Небольшой пример использования этой подсистемы для чтения столбца чисел из таблицы xls прилагаю к этому посту.


Вложения:
Комментарий к файлу: Модуль и лист xls
ExcelRead.zip [2.77 КБ]
Скачиваний: 244
Вернуться к началу
 Профиль  
 
СообщениеДобавлено: Воскресенье, 20 Февраль, 2011 10:34 
Аватара пользователя

Зарегистрирован: Пятница, 11 Май, 2007 21:57
Сообщения: 1387
Откуда: Украина, Киев
В качестве альтернативы, можно читать файлы Excel через ADO, как базу данных :)


Вернуться к началу
 Профиль  
 
СообщениеДобавлено: Воскресенье, 20 Февраль, 2011 12:04 
Модератор
Аватара пользователя

Зарегистрирован: Среда, 16 Ноябрь, 2005 00:53
Сообщения: 4593
Откуда: Россия, Орёл
А ещё лучше читать из CSV-текста. Чтобы ни быть привязанным ни к чему, кроме CSV-читалки, которую на ББ без проблем накатать.


Вернуться к началу
 Профиль  
 
СообщениеДобавлено: Суббота, 30 Апрель, 2011 00:33 

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


Вернуться к началу
 Профиль  
 
СообщениеДобавлено: Суббота, 30 Апрель, 2011 01:10 
Модератор
Аватара пользователя

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


Вернуться к началу
 Профиль  
 
СообщениеДобавлено: Суббота, 30 Апрель, 2011 02:01 

Зарегистрирован: Среда, 04 Август, 2010 04:01
Сообщения: 37
Откуда: Сан Хосе, Калифорния, США
Евгений, спасибо за информацию. Вроде то что нужно.


Вернуться к началу
 Профиль  
 
СообщениеДобавлено: Пятница, 23 Март, 2012 02:18 
Аватара пользователя

Зарегистрирован: Четверг, 08 Октябрь, 2009 15:00
Сообщения: 2764
Интересно, что с MS Word такой проблемы нет: app.Close(NIL, NIL, NIL); убивает и процесс.

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

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


Вернуться к началу
 Профиль  
 
Показать сообщения за:  Поле сортировки  
Начать новую тему Ответить на тему  [ Сообщений: 7 ] 

Часовой пояс: UTC + 3 часа


Кто сейчас на конференции

Сейчас этот форум просматривают: нет зарегистрированных пользователей и гости: 1


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

Найти:
Вся информация, размещаемая участниками на конференции (тексты сообщений, вложения и пр.) © 2005-2020, участники конференции «OberonCore», если специально не оговорено иное.
Администрация не несет ответственности за мнения, стиль и достоверность высказываний участников, равно как и за безопасность материалов, предоставляемых участниками во вложениях.
Без разрешения участников и ссылки на конференцию «OberonCore» любое воспроизведение и/или копирование высказываний полностью и/или по частям запрещено.
Powered by phpBB® Forum Software © phpBB Group
Русская поддержка phpBB