Форум программистов, компьютерный форум, киберфорум
AutoIt
Войти
Регистрация
Восстановить пароль
Карта форума Темы раздела Блоги Сообщество Поиск Заказать работу  
 
Рейтинг 4.91/86: Рейтинг темы: голосов - 86, средняя оценка - 4.91
9 / 9 / 1
Регистрация: 25.05.2011
Сообщений: 31
1

AutoIt и Эксель

16.03.2012, 12:14. Показов 15732. Ответов 1
Метки нет (Все метки)

Author24 — интернет-сервис помощи студентам
Выкидываю программку которая позволяет сделать выборку условию "Заполнено" или "Незаполнено" ячейка 5го столбика и поместить данные всей строчки в отдельный xls файл.

+ Добавка к реестрам создает пункт в контекстном меню мышки.

код ---
#include <Excel.au3>
#include <Array.au3>

HotKeySet("{Esc}", "eExit")
Func eExit()
Exit 0
EndFunc

Opt("TrayIconDebug", 1)
Opt("WinTitleMatchMode", 2)





;путь к файлу
;~ $sFile = @ScriptDir & "\KALDE ОПТ 2012-03-05.xls"
;получаем путь файла из командной строки
If $CmdLine[0] = 0 Then Exit
$sFile = $CmdLine[1]

;открываем в скрытом режиме
$fVisible = 0
;только для чтения
$fReadOnly = true
;открыть книгу
Local $oExcel = _ExcelBookOpen($sFile, $fVisible, $fReadOnly)

;Номер последней строчки
$max_row = $oExcel.ActiveSheet.UsedRange.Rows.Count
;Прочитать колонку ячеек
Local $aArray1 = _ExcelReadArray($oExcel, 1, 5, $max_row, 1, 1)
;~ _ArrayDisplay($aArray1, "Vertical")



;столбец
$column = 5
;строка
$row = 1
;ПОИСКОВАЯ ЯЧЕЙКА
$search_cell = $oExcel.Activesheet.Cells($row, $column).Value
;~ $search_cell = _ExcelReadcell($row, $column)


;запись положительного результата поиска
Local $write_row_num[$max_row +1]
;последняя запись положительного результата
$last_row_num = 1


;ПОИСК
Do

if $search_cell <> "" and $search_cell <> " ----" then
;запись положительного результата поиска
$write_row_num[$last_row_num] = $row
;переход к следущей ячейке для записи результата
$last_row_num = $last_row_num + 1
EndIf

;переход к следующей ячейке для поиска в столбце
$row = $row + 1
$search_cell = $oExcel.Activesheet.Cells($row, $column).Value

until $row = $max_row +1
;~ _ArrayDisplay($write_row_num, "Пустые")

;путь к файлу2
$sFile2 = @ScriptDir & "\Print.xls"
;открываем в скрытом режиме файл2
$fVisible = 1
;только для чтения файл2
$fReadOnly = True
;открыть книгу 2
Local $oExcel2 = _ExcelBookOpen($sFile2, $fVisible, $fReadOnly)

;номер цикла
$num_loop = 1
do
;выделяем копируем строку книги1
$oExcel.ActiveSheet.Range("A"&$write_row_num[$num_loop],"F"&$write_row_num[$num_loop]).Select
$oExcel.Selection.Copy
;выделяем вставляем строку в книгу2
$oExcel2.ActiveSheet.Range("A"&$num_loop+2,"F"&$num_loop+2).Select
$oExcel2.ActiveSheet.Paste
;переходим к следущей строке цикла
$num_loop = $num_loop +1
;делаем до того как строка цикла будет равна последней записи заполненых ячеек
until $num_loop = _ArrayMaxIndex($write_row_num, 1)

;ширина колонки заказа
$zakaz_dl = " ."
_ExcelWriteCell($oExcel2, $zakaz_dl, 1, 5)

;выставляем формат и ширину заказа
$oExcel2.Columns('A:F' ).EntireColumn.AutoFit
$oExcel2.Columns('A:F' ).EntireColumn.Select
$oExcel2.Selection.Interior.ColorIndex = 0

;удаляем ненужные колонки
_ExcelColumnDelete($oExcel2, 1, 1)
_ExcelColumnDelete($oExcel2, 2, 1)
_ExcelColumnDelete($oExcel2, 4, 1)

;вписываем заказ от
$zakaz_ot = _ExcelReadCell($oExcel, 14, 1)
_ExcelWriteCell($oExcel2, $zakaz_ot, 3, 1)

;вписываем поле заметок
$zametki = _ExcelReadCell($oExcel, 1, 7)
_ExcelWriteCell($oExcel2, $zametki, 2, 1)

;вписываем дату печати
$data = @MDAY&"."&@MON&"."&@YEAR&" в"&@HOUR&":"&@MIN
_ExcelWriteCell($oExcel2, $data, 2, 2)

;вписываем название файла
dim $name_file = StringSplit(StringReplace($sFile, "\", @LF), @LF)
$name_file_short = "файл: "&$name_file[$name_file[_ArrayMaxIndex($name_file, 1)]]
_ExcelWriteCell($oExcel2, $name_file_short, 1, 1)

;убираем жирный шрифт
_ExcelFontSetProperties($oExcel2, 1, 1, $num_loop+1, 3, False, False, False)

;~ MsgBox(4096, "Test", $name_file[$name_file[_ArrayMaxIndex($name_file, 1)]] )
;~ _ArrayDisplay($name_file, "Пустые")

_ExcelBookClose($oExcel)
Вложения
Тип файла: zip Печать.zip (1.6 Кб, 173 просмотров)
Тип файла: zip Reg.zip (411 байт, 136 просмотров)
3
Programming
Эксперт
94731 / 64177 / 26122
Регистрация: 12.04.2006
Сообщений: 116,782
16.03.2012, 12:14
Ответы с готовыми решениями:

AutoIT
Уважаемые, помогите по вышеуказанной теме. Не знаю с чего начать, что почитать или какие нибудь...

Из Bat в AutoIt
Всем привет! Есть у меня один очень ценный для меня код в bat. Я хотел бы, да не могу его перевести...

Альтернатива AutoIt
По неким причинам решил перейти с autoit на другой язык. Какой язык выбрать для этого? С++, java,...

Язык AutoIt
HotKeySet(&quot;{F6}&quot;,&quot;_Exit&quot;), ЯЗЫК autoit Как на примере этой строчке сделать так же, но что б на...

1
9 / 9 / 1
Регистрация: 25.05.2011
Сообщений: 31
16.03.2012, 12:28  [ТС] 2
версия редактора

SciTE4AutoIt3
Version 1.77
Dec 24 2008 09:01:19
by Neil Hodgson.

Офис 2003
0
16.03.2012, 12:28
IT_Exp
Эксперт
87844 / 49110 / 22898
Регистрация: 17.06.2006
Сообщений: 92,604
16.03.2012, 12:28
Помогаю со студенческими работами здесь

AutoIt & C#
Раньше использовал в AutoIt такие строки $oIE = _IECreate (&quot;https://sbi.sberbank.ru:9443/ic/&quot;)...

Что такое AutoIT
Доброго времени суток! Это что за раздел такой на форуме? Какие темы сюда создавать?

Send CTRL+F autoit
Как послать ctrl+f чтобы вызвать поиск? send... нужна ваша помощь.

AutoIt и Adobe AIR
Приветствую всех. Господа старожилы, не откажите в помощи или совете, пожалуйста. Есть такая...


Искать еще темы с ответами

Или воспользуйтесь поиском по форуму:
2
Ответ Создать тему
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2024, CyberForum.ru