9 / 9 / 1
Регистрация: 25.05.2011
Сообщений: 31
|
|
1 | |
AutoIt и Эксель16.03.2012, 12:14. Показов 15732. Ответов 1
Метки нет (Все метки)
Выкидываю программку которая позволяет сделать выборку условию "Заполнено" или "Незаполнено" ячейка 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)
3
|
16.03.2012, 12:14 | |
Ответы с готовыми решениями:
1
AutoIT Из Bat в AutoIt Альтернатива AutoIt Язык AutoIt |
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 | |
16.03.2012, 12:28 | |
Помогаю со студенческими работами здесь
2
AutoIt & C# Что такое AutoIT Send CTRL+F autoit AutoIt и Adobe AIR Искать еще темы с ответами Или воспользуйтесь поиском по форуму: |