Имя пользователя:
Пароль:  
Помощь | Регистрация | Забыли пароль?  | Правила  

Компьютерный форум OSzone.net » Программирование, базы данных и автоматизация действий » AutoIt » [решено] обработка файлов при помощи модуля Excel.au3

Ответить
Настройки темы
[решено] обработка файлов при помощи модуля Excel.au3

Новый участник


Сообщения: 23
Благодарности: 0

Профиль | Отправить PM | Цитировать


задача такая. автоит запускает некую внешнюю программу, которая последдовательно выгружает 9 экселевских файлов, каждый из которых нужно сохранить в определенное место с определенным именем. первоначально это сохранение делалось при помощи Send.
WinActivate("Microsoft Excel")
Send("{Alt}{ф}{с}")
Send($path & "имяфайла.xls")
Send("{Enter}")
WinClose("Microsoft")
теперь кажется более логичным (и быстрым!) сделать следующее

$oExcel2 = ObjGet("", "Excel.Application") ;
_ExcelBookSaveAs($oExcel, $path_d & "имяфайла", "xls")
_ExcelBookClose($oExcel,1, 0)

Но происходит следующее. Первый выгружаемый файл сохраняется и закрывается без проблем. Остальные - не сохраняются и не закрываются!
Автоит якобы сохраняет что-то - если посмотреть переменную $s=_ExcelBookSaveAs($oExcel, $path_d & "имяфайла", "xls"), и эта перемення 1! а не ноль. Хэндлы окон эксель тоже определяет безошибочно! в первый эксель-файл он даже может записать что угодно и прочесть любую ячейку с него, а вот начиная со второго - мертвый номер, что я только не делала - не "видит"он последующих выгружаемых файлов и все. и ничего не помогает. Подскажите, где копать? буду благодарна за любую подсказку.

Отправлено: 10:23, 23-01-2009

 

Аватара для Creat0R

Must AutoIt


Сообщения: 3054
Благодарности: 1009

Профиль | Сайт | Отправить PM | Цитировать


Во-первых, коды нужно обрамлять соот-ющими тегами ([code]).

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

-------
“Сделай так просто, как возможно, но не проще этого.”... “Ты никогда не решишь проблему, если будешь думать так же, как те, кто её создал.”

Альберт Эйнштейн

P.S «Не оказываю техподдержку через ПМ/ICQ, и по email - для этого есть форум. ©»

http://creator-lab.ucoz.ru/Images/Icons/autoit_icon.png Русское сообщество AutoIt | http://creator-lab.ucoz.ru/Images/Ic...eator_icon.png CreatoR's Lab | http://creator-lab.ucoz.ru/Images/Icons/oac_icon.png Opera AC Community


Отправлено: 14:29, 23-01-2009 | #2



Для отключения данного рекламного блока вам необходимо зарегистрироваться или войти с учетной записью социальной сети.

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


Новый участник


Сообщения: 23
Благодарности: 0

Профиль | Отправить PM | Цитировать


Добрый день!
после долгих раздумий и проб задача была решена. Выкладываю, может быть кому-то пригодится.
Команда $oExcel = ObjGet("", "Excel.Application") оказыватся с "длительным" действием, и что бы потом не открывалось в экселе - первая открытая книга всегда будет подразумеваться в последующих действиях.
Верятно, что-то "застревает" в пямяти. Решение - после обработки первого эксель-файла поставить строку - $oExcel="". И все работает Все остальные книги обрабатываются должным образом. Так что это? обнуление переменных? (получатеся очистка объектов). Наверное это логично - очищать память от использованного.

WinWaitActive("Microsoft Excel - Книга1","", 0);жду окна
WinActivate("Microsoft Excel - Книга1","")
If WinExists("Microsoft Excel - Книга1") Then
WinActivate("Microsoft Excel - Книга1","")
$oExcel = ObjGet("", "Excel.Application")
_ExcelBookSaveAs($oExcel, "C:\папка\наим1", "xls",0,1)
_ExcelBookClose($oExcel,1, 0)
EndIf
$oExcel="" ; вот она, эта волшебная строка

Отправлено: 11:41, 09-02-2009 | #3



Компьютерный форум OSzone.net » Программирование, базы данных и автоматизация действий » AutoIt » [решено] обработка файлов при помощи модуля Excel.au3

Участник сейчас на форуме Участник сейчас на форуме Участник вне форума Участник вне форума Автор темы Автор темы Шапка темы Сообщение прикреплено

Похожие темы
Название темы Автор Информация о форуме Ответов Последнее сообщение
[решено] Конвертация видео файлов при помощи видеокарты. Jo-iZo Видеокарты 2 10-07-2009 21:48
Разное - [решено] Не изменить ассоциацию файлов CSV с Excel на TablePro truvo Microsoft Windows 2000/XP 3 26-07-2008 08:44
[решено] Скриптовая обработка файлов dmon_s Программирование в *nix 3 31-08-2007 02:11
Внесение изменений во все листы книги Excel при помощи VB макросов Vadikan Программирование и базы данных 4 29-12-2005 02:10
Решено | Проблема с импортом ключей реестра при помощи REG файлов Fanzuga Автоматическая установка Windows 2000/XP/2003 3 17-09-2005 13:55




 
Переход