Недавние сообщения

Страницы: [1] 2 3 ... 10
1
Общие вопросы по AutoIt / Re: удалить и скопировать 1 столбец excel _Excel_RangeDelete
« Последний ответ от cdjsend Отправлен Сегодня в 11:22:22 »
с удалением разобрался, теперь не могу разобраться со специальной вставкой
нужно я написал формулу которая делает наценку на  1 колонке, теперь нужно с этой колонки специальную вставку значений сделать в другую колонку в соседнюю например

Код: AutoIt [Выделить]
$oWorkbook.Worksheets(1).Activate
_Excel_RangeDelete($oWorkbook.Worksheets(1), "1:1")
_Excel_RangeInsert($oWorkbook.Worksheets(1), "G:G")

; формула наценки
_Excel_RangeWrite($oWorkbook, $oWorkbook.Activesheet, "=F2*1.04", "G2:G12", False)

 _Excel_RangeCopyPaste($oWorkbook.Worksheets(1), "G2:G12")


2
Стол заказов / Re: [Автоматизация] Автоматическая корректировка файла Excel
« Последний ответ от Yriy_07 Отправлен Сегодня в 11:14:24 »
Спасибо огромное! Все работает! :) :IL_AutoIt_1:
3
Общие вопросы по AutoIt / Re: удалить и скопировать 1 столбец excel _Excel_RangeDelete
« Последний ответ от gunter123 Отправлен Сегодня в 10:53:08 »
Код: AutoIt [Выделить]
$aRange = _Excel_RangeRead($oBook, Default, 'B1:B20') ; Прочесть 20 строк из второй колонки в массив $aRange
_Excel_RangeDelete($oBook.ActiveSheet, 'B:B', $xlShiftToLeft)  ; Удалить вторую колонку со смещением влево из книги $oBook

4
Стол заказов / Re: [Автоматизация] Автоматическая корректировка файла Excel
« Последний ответ от gunter123 Отправлен Сегодня в 10:36:22 »
С этого надо было начинать. Теперь скрипт ищет файлы CSV, в которых данные находятся в одной ячейке в каждой строке и записывает их в файл Итог.xlsx. С файлами CSV, что были в архиве, работает нормально.
Код: AutoIt [Выделить]
#include <Array.au3>
#include <File.au3>
#include <Excel.au3>

Dim $aTotal[0][4]                               ; Конечный массив
$iCount = 0                                     ; Переменная для конечного массива
$sPath = @ScriptDir                             ; Путь к папке с файлами Excel
$sTotalName = "Итог.xlsx"                       ; Название итогового файла Excel
$aList = _FileListToArray($sPath, '*.csv')      ; Берем список xlsx файлов в папке
_ArrayDelete($aList, $sTotalName)               ; Удаляем из этого списка название итогового файла, если он есть
$oExcel = _Excel_Open()                         ; Открываем Excel
$iTotalTime = 0

For $iFile = 1 To UBound($aList) -1             ; Для каждого файла...
   $oBook  = _Excel_BookOpen($oExcel, $sPath & "\" & $aList[$iFile])
   $aRange = _Excel_RangeRead($oBook)           ; Читаем в массив содержимое файла Excel
   For $iRow = 1 To UBound($aRange) -1 Step 2   ; Проходим по каждой строчке массива, первую строчку пропускаем
      If $aRange[$iRow] = "" Then ContinueLoop  ; Пропускаем пустые строки
      $aSplit = StringSplit($aRange[$iRow], ',', 3)
      $aNext = StringSplit($aRange[$iRow+1], ',', 3)
      ;_ArrayDisplay($aNext)
      ReDim $aTotal[$iCount +1][4]              ; Расширяем массив
      $aTotal[$iCount][0] = $aNext[0]           ; Записываем в первую колонку дату в следующей строчке
      $aTotal[$iCount][1] = $aSplit[0]          ; Во вторую колонку - дату в текущей строчке
      $aTotal[$iCount][2] = "PROBLEM"           ; На место статуса (третья колонка) записываем Problem
      $aTotal[$iCount][3] = _SecondToMinutes(_ToSecond($aNext[4]))  ; В четвертую колонку записываем Duration
      $iTotalTime = $iTotalTime + _ToSecond($aNext[4])
      $iCount = $iCount + 1
   Next
   _Excel_BookClose($oBook)                         ; Закрываем книгу
Next

ReDim $aTotal[$iCount +1][4]                        ; Запишем общее время
$aTotal[$iCount][3] = _SecondToMinutes($iTotalTime)
$aTotal[$iCount][2] = "Всего: "

$oBook = _Excel_BookOpen($oExcel, $sPath & "\" & $sTotalName)
If @error Then $oBook = _Excel_BookNew($oExcel)

_Excel_RangeWrite($oBook, $oBook.Activesheet, $aTotal, "A1")
_Excel_BookSaveAs($oBook, $sPath & "\" & $sTotalName)

Func _SecondToMinutes($iSecond)                     ; Переводит секунды в минуты в формате MM,SS
   If $iSecond >= 60 Then
      $iTmp = Floor($iSecond / 60) & ','
      $iSecond = $iSecond - $iTmp * 60
   Else
      $iTmp = 0 & ','
   EndIf

   If $iSecond > 10 Then
      Return $iTmp & $iSecond
   Else
      Return $iTmp & '0' & $iSecond
   EndIf
EndFunc

Func _ToSecond($sTime)                              ; Переводит строку с временем в секунды. Например, из строки 3m 49s вернет 229
   $sTime = StringReplace($sTime, '"', '')
   $aTime = StringSplit($sTime, ' ', 2)
   $iValue = 0
   For $iTime = 0 To UBound($aTime) -1
      $sTmp = StringRight($aTime[$iTime], 1)
      $aTime[$iTime] = StringTrimRight($aTime[$iTime], 1)
      Switch $sTmp
         Case 'd'
            $iValue = $iValue + $aTime[$iTime] * 86400
         Case 'h'
            $iValue = $iValue + $aTime[$iTime] * 3600
         Case 'm'
            $iValue = $iValue + $aTime[$iTime] * 60
         Case 's'
            $iValue = $iValue + $aTime[$iTime]
      EndSwitch
   Next
   Return $iValue
EndFunc

5
Общие вопросы по AutoIt / удалить и скопировать 1 столбец excel _Excel_RangeDelete
« Последний ответ от cdjsend Отправлен Сегодня в 09:52:49 »
в примерах функции указано что она может удалять как массив колонок так и поштучно, но примера поштучно нету ,подскажите как это сделать? так же интересует как скопировать 1 столбец и вставить специальной вставкой как текст ?
1 строку и пару строчек удаляет без проблем, а вот с 1 столбцом проблема

в новом autoit - _ExcelColumnDelete этой функци нету (
6
Стол заказов / Re: [Автоматизация] Автоматическая корректировка файла Excel
« Последний ответ от Yriy_07 Отправлен Сегодня в 05:44:42 »
Могу выслать на почту так как excel формат загрузить нельзя


Добавлено: Сегодня в 06:18:35
Обьясню всю сложность данной процедуры. Изначально файлs скачивается с браузера  c расширением CSV. Далее я открываю его Либеро он предлагает разбить его на поля, соглашаюсь затем сохраняю этот файл в формате excel, после этого удаляю файлы Либеро, в среднем выгружается около 10 файлов. Затем захожу в каждый файл добовляю столбец и переношу время в соответсттвии с примером затем изменяю формат значений  30s на 0,30 | 1m 30s на 1,30 | 1h 25m 30s на 85,30 |  1d 17h 15m 30s на 2475,30  . После этого суммирую время, затем удаляю ненужные столбцы, и так каждый файл количество строк в файле различное от 2 до 500 после того как обработал каждый файл беру шаблон отчета и забиваю туда данные с каждого файла отчет имеет два раздела. вверху указывается сумма времени по узлам по мощности и физикии она переводится в проценты 4 столбца. А внизу идет детализированный отчет в котором указано время начало время завершения продолжителность имя узла и тип (мощность либо физика). Один небольшой отчет занимает около 2 с половиной часов времени по одному филиалу  а их более 25. отчет ежемесячный. :(


Добавлено: Сегодня в 06:31:17
Версию autoit обновил до 3.3 скрипт начал отрабатывать но не захватывает информацию со  всех файлов результат примерно такой ! строка:
2018--0-4- 16: 1:45   2018--0-4- 16: 1:15   PROBLEM   11m 30s

Всего:    0.04:4:18:59

Со временем как бы непонятно




Добавлено: Сегодня в 06:45:25
Положил в рабочюю директорию один файл, исхдник и результат обработки во вложении. Исходник выше результат ниже


Добавлено: Сегодня в 08:26:22
Вот два исходных файла и отчет. Отчет по другим файлам создан поэтому цифры не соответствуют
7
Стол заказов / Re: Анализ Excel документа, чтение данных
« Последний ответ от Maggot_515 Отправлен Сегодня в 04:43:44 »
Все отлично работает с тем документом что я прикрепил.
Удалось выгрузить с программы вроде все тоже самое но работать с выгруженного excel документа не хочет.
Поменял (прил.) на (Прил.) в коде программы.
Очистил формат и сделал формат ячейки текстовый. в excel документе, заработало, но создает папки даже там где файлы не совпали по объему.

p.s не думал что формат ячейки может как то влиять. Посмотрите пожалуйста прикрепленный файл.
8
Дни рождения / С днём рождения Interruption!
« Последний ответ от Представитель Сообщества Отправлен Сегодня в 01:00:27 »
От имени всего Русского сообщества AutoIt поздравляем Вас Interruption с днём рождения!



Цитировать
Пусть все мечты исполнятся,
Пусть все желанья сбудутся,
Пусть радости запомнятся,
А горести забудутся.

Здоровье будет крепкое,
В делах всегда согласие,
Любовь навеки верная —
Без ссор и разногласия.

Зарплата только вовремя,
Стабильная, высокая.
Работа будет лёгкая
И не совсем далёкая.

Пусть жизнь Вам дарит самые
Прекрасные мгновения.
Желаем только радости
И счастья, с днем рождения!
9
Стол заказов / Re: Анализ Excel документа, чтение данных
« Последний ответ от ra4o Отправлен Вчера в 21:33:07 »
Пробуйте этот вариант:
(нажмите для показа/скрытия)
10
Стол заказов / Анализ Excel документа, чтение данных
« Последний ответ от Maggot_515 Отправлен Вчера в 18:39:45 »
Версия AutoIt: 3.3.14.2

Описание: Задача  найти строку в excel документе которая начинается
с текста Прил.**** ; где **** - всегда разные цифры; cоздать папку с номером ****
Затем выполнить сравнение по байтно файлов с ячейкой в excel документе и переместить их в папку соответствующую номеру приложения. Все что не соответствует объему не перемещать, название файлов в учет не брать сравнивать только объем в байтах.

Примечания:  Прикрепляю два архива До и После преобразования. Таблица с которой берутся данные 20180420.xls имя каждый день меняется.
Страницы: [1] 2 3 ... 10