|
Компьютерный форум OSzone.net » Программирование, базы данных и автоматизация действий » AutoIt » [решено] обработка файлов при помощи модуля Excel.au3 |
|
[решено] обработка файлов при помощи модуля Excel.au3
|
Новый участник Сообщения: 23 |
Профиль | Отправить 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 |
Must AutoIt Сообщения: 3054
|
Профиль | Сайт | Отправить PM | Цитировать Во-первых, коды нужно обрамлять соот-ющими тегами ([code]).
По поводу задачи. Не ясно как выгружаются остальные файлы, выложите работающий пример, где происходит сохранение и выгрузка. |
------- Отправлено: 14:29, 23-01-2009 | #2 |
Для отключения данного рекламного блока вам необходимо зарегистрироваться или войти с учетной записью социальной сети. Если же вы забыли свой пароль на форуме, то воспользуйтесь данной ссылкой для восстановления пароля. |
Новый участник Сообщения: 23
|
Профиль | Отправить 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 |
Участник сейчас на форуме | Участник вне форума | Автор темы | Сообщение прикреплено |
| |||||
Название темы | Автор | Информация о форуме | Ответов | Последнее сообщение | |
[решено] Конвертация видео файлов при помощи видеокарты. | 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 |
|