Страницы: Пред. 1 2 3 4 5 6 След.
RSS
Удобное внедрение языка программирования "Python" в файл Excel на основе портативной сборки Python, Настроенный файл Excel для удобного вызова скриптов Python из Excel
 
Доброго времени суток!
Интересная тема, жаль что питон пока непросто комбинировать с эксель. В расцвет аналитики это очень актуально.

Спасибо автору за проделанную работу.  
 
Цитата
Jack Famous написал:
не соглашусь - на данный момент использование xls ввиду отсутствия у пользователя версии Excel выше 2003 является абсурдом
Вы и не представляете, как сильно заблуждаетесь! Да, мало у кого из пользователей стоит Excel 2003, в основном встречаются 2010 - 2016 (по моим наблюдениям). Но, ввиду малой грамотности в данной теме, люди постоянно сохраняют файлы в .xls Это делается и по старой памяти (они точно помнят, что такое .xls, и не видят разницы c .xlsx - с большими данными они не работают). Так же это и автоматические выгрузки из 1С, которые то же почему-то идут .xls (не путать с ручным сохранением отчетов). Так что .xls встречается постоянно и повсеместно.
 
Jack Famous,  да и еще, обход каталога
dir c:\temp\*.xls* /s /b через шел, ну а далее  
FOR Each File in split( .... , vbCR )
...
По вопросам из тем форума, личку не читаю.
 
Сергей, воу! Впечатляет. Код простой, всё коротко и понятно. Время отличное! Особенно отмечу простоту перебора папок и всех подпапок
По сути, то, что я (или другой программист со стажем) копить годами создавая свои процедуры и функции для простого решения каких-либо задач, в пайтоне уже реализовано. Да - может чуть медленнее, зато гораздо более универсально. Что ж - теперь посоветуйте, как вливаться в пайтон, что смотреть, где читать
Спасибо за тему, за тест!  :idea:

Буду рад новым соревнованиям (хочу проверить работу с диапазоном)

Цитата
Lari: питон пока непросто комбинировать с эксель
просто или не очень, но способ есть, и, я думаю, есть все основания, что в будущем работа через пайтон будет штатным инструментом

Цитата
Vladimir Chebykin:.xls встречается постоянно и повсеместно
вы не поняли - я про техническую часть, про НЕВОЗМОЖНОСТЬ работы/создания книг "*.xlsx". Скажем так, если есть решение, которое вам очень нужно, но оно работает только с "*.xlsx", то кто победит: сила привычки или разумное понимание?

БМВ, сложна. Пробовать пока не особо хочется, раз выгода в скорости туманна и неочевидна
За ссылки и вариант спасибо - может наткнусь где на тесты или созрею, но пока другое в очереди
Изменено: Jack Famous - 08.06.2021 09:31:56
Во всех делах очень полезно периодически ставить знак вопроса к тому, что вы с давних пор считали не требующим доказательств (Бертран Рассел) ►Благодарности сюда◄
 
Цитата
Jack Famous написал:
неужели для вас и правда двукратный прирост в скорости и двукратный прирост в теле кода - это одно и тоже???
Цитата
Jack Famous написал:
Предложить иной способ сравнения не готов...
Ну, раз иной методики оценки вы не готовы предложить, предлагаю в оценку ввести понижающий коэффициент 0,5 на баллы, полученные за количество строк кода в шаге 2. Таким образом получается, что решение на Python лидирует с 15% преимуществом над вашим способом решения задачи средствами VBA:
Расчет:

Скрытый текст

Жду ответ - соглашаетесь ли вы с результатом?
Если нет, то прошу представить вашу оценку.
Изменено: Сергей - 08.06.2021 12:19:26
 
Цитата
Сергей: Жду ответ - соглашаетесь ли вы с результатом?
как я писал выше, раз время сопоставимо, то сделаю полную версию
Готовлю финальную версию …  ;)
Изменено: Jack Famous - 08.06.2021 09:51:05
Во всех делах очень полезно периодически ставить знак вопроса к тому, что вы с давних пор считали не требующим доказательств (Бертран Рассел) ►Благодарности сюда◄
 
Цитата
Jack Famous написал:
я так понял, пропуски вы не учитываете - в таком случае и у меня поменьше будет
Представленный вами код 39 строк - я считал без пропусков с исключением строк "Sub" и "End Sub".

Цитата
Jack Famous написал:
Готовлю финальную версию …  
Желаю удачи! Пусть победит лучший!
Изменено: Сергей - 08.06.2021 09:45:12
 
Цитата
Сергей: Представленный вами код 39 строк - я считал без пропусков
верно - удалил замечание
Быстрый, но небольшой буст старой версии
Во всех делах очень полезно периодически ставить знак вопроса к тому, что вы с давних пор считали не требующим доказательств (Бертран Рассел) ►Благодарности сюда◄
 
Jack Famous, У вас первое действие макроса не фиксирует время старта, кажется. Если это так, то может занижаться время исполнения кода.
 
Сергей, сильное заявление, но посмотрев, ЧТО идёт перед началом отсчёта (выбор папки пользователем) сразу становится, ясно, ПОЧЕМУ время засекается ПОСЛЕ   ;)
Во всех делах очень полезно периодически ставить знак вопроса к тому, что вы с давних пор считали не требующим доказательств (Бертран Рассел) ►Благодарности сюда◄
 
Цитата
Jack Famous написал:
Что ж - теперь посоветуйте, как вливаться в пайтон, что смотреть, где читать
Так как вы хорошо разбираетесь в VBA вам прямая дорога в Python через сайт xlwings - эта библиотека работает с объектами Excel, которые вы знаете.
А еще скажите себе, что следующий проект делайте на Python, какие бы сложности перед вам бы это не ставило.
В качестве стартового набора скачайте мою тестовую сборку, которую я выставил для сравнения против вашего кода (она для 64х оси).

Заодно, как будете готовы, сможете оценить и предъявить сообществу эффективность вашей финальной версии против моей сборки, запущенной на вашем компьютере.
Изменено: Сергей - 08.06.2021 12:20:44
 
Цитата
Jack Famous написал:
но посмотрев, ЧТО идёт перед началом отсчёта (выбор папки пользователем) сразу становится, ясно, ПОЧЕМУ время засекается ПОСЛЕ  
Лучшее избавиться от выбора папки пользователем в угоду прозрачности расчета времени исполнения кода - так более спортивно. И не будет смущать людей, плохо знающих VBA. Предлагаю заменить на поиск нужной папки в текущем каталоге, где находится файл Excel из которого запускается макрос.
Тогда у наших кодов повысится сходство.
Изменено: Сергей - 08.06.2021 11:17:48
 
Цитата
Сергей: скажите себе, что следующий проект делайте на Python, какие бы сложности перед вам бы это не ставило
ээээ нет — мне больше 16ти лет, я довольно серьёзный дядька и мой босс этого юношеского задора не поймёт, а помимо работы, "проектов" у меня нет  :D
Цитата
Сергей: избавиться от выбора папки
ок ,прописывайте путь до папки ручками, но любой, кто разбирается подтвердит, что это не влияет на скорость. Справедливости ради, экспертизы вашего кода, кроме как вами, я так понимаю, не будет? Раз уж такая пляска пошла, то откуда мне знать, что у вас вообще получилось? Проходить манипуляции, чтобы внедрить себе змею желания нет, простите  :D

P.S.: не надо плодить сообщения, редактируйте старые, если после него вам ничего не отвечали
Изменено: Jack Famous - 08.06.2021 11:21:17
Во всех делах очень полезно периодически ставить знак вопроса к тому, что вы с давних пор считали не требующим доказательств (Бертран Рассел) ►Благодарности сюда◄
 
Цитата
Jack Famous написал:
Справедливости ради, экспертизы вашего кода, кроме как вами, я так понимаю, не будет?
Верно! Это ваша обязанность смотреть чтобы не шельмовал соперник ;)
У меня это самая первая строка в VBA (настолько первая, что объявление переменных идет после нее) и самая нижняя в Python. Вы можете легко их видеть.
Вашу финальную сборку я предлагаю тестировать вам на вашем компьютере. В том числе запустить у себя мою. Сюда отписать результат.
Цитата
Jack Famous написал:
ээээ нет — мне больше 16ти лет, я довольно серьёзный дядька и мой босс этого юношеского задора не поймёт, а помимо работы, "проектов" у меня нет  
Тогда советую забыть про посетившую вас идею учить Python. Я уже писал об этом. Если языку нет места в ваших проектах, он не имеет для вас никакой ценности.
У вас быстро пройдет мотивация его учить. То ли дело когда загибается проект! А шеф в этом деле даже хорошо - зачастую шаг вперед, это следствие пенка в зад.
Если шеф бдительно следит за проектом, то от этого мотивации к изучению только повысятся.
Изменено: Сергей - 08.06.2021 11:39:48
 
Цитата
Сергей: Это ваша обязанность смотреть чтобы не шельмовал соперник
ааа — а я, дурак, подумал, что мы тут коды сравниваем, а не на$бать друг друга пытаемся… Нет, спасибо
Цитата
Сергей: запустить у себя мою
нет уж, спасибо — слишком много геморроя
Цитата
Сергей: Вашу финальную сборку я предлагаю тестировать вам на вашем компьютере
разве до этого было иначе?  :D
Отчёт
Итог:
Изменено: Jack Famous - 08.06.2021 12:18:10
Во всех делах очень полезно периодически ставить знак вопроса к тому, что вы с давних пор считали не требующим доказательств (Бертран Рассел) ►Благодарности сюда◄
 
82$ в месяц на мой взгляд дороговато))
чтобы без усиленных танцев с бубном писать код на питоне в эксель))
 
Цитата
Lari написал:
82$ в месяц
это откуда?
 
Vladimir Chebykin, price
Во всех делах очень полезно периодически ставить знак вопроса к тому, что вы с давних пор считали не требующим доказательств (Бертран Рассел) ►Благодарности сюда◄
 
Цитата
Jack Famous написал:
Vladimir Chebykin ,  price
понял, спс. Для этого ТС и расписал все подробно в сообщении №1, как все самому сделать.
 
Цитата
Vladimir Chebykin: ТС и расписал все подробно в сообщении №1, как все самому сделать
просто интересно - а вы сделали?  :)
Во всех делах очень полезно периодически ставить знак вопроса к тому, что вы с давних пор считали не требующим доказательств (Бертран Рассел) ►Благодарности сюда◄
 
Цитата
Lari написал:
82$ в месяц на мой взгляд дороговато))чтобы без усиленных танцев с бубном писать код на питоне в эксель))
Подумайте еще раз так ли это дорого (хотя, сдается мне, вы в вашем сообщении что это дорого и не утверждали и вообще хотели сказать про другое)
Это цена за комплект, рассчитанный на организацию с одним администратором и неограниченным количеством пользователей, которые будут строить отчетность с помощью шаблонов, использовать все плюшки платной версии, а админ будет им все там настраивать.
Предоставляется личное время разработчиков - поддержка по Email, НЕ лимитированная. Сколько это может по вашему стоить денег?

Ребята с сайта делает так чтобы и себе штаны поддержать и рядовых пользователей не обижают.
Имеем ли мы право что-то тут просить большее?

Сравните с ценами конкурентов - там платят 29$ за каждого пользователя. Нет бесплатной версии, кроме демки на месяц:
https://www.pyxll.com/store.html

Я не говорю что это дешево. Но в их предложении правильная энергетика - и вам плюс и я в плюсе.
Антипример этого подхода я привел выше, хотя справедливости ради, я должен сказать что не изучал их ситуацию и там могут оказаться бесплатные лазейки.
Изменено: Сергей - 08.06.2021 13:32:52
 
Цитата
Jack Famous написал:
просто интересно - а вы сделали?
нет
П.С. я еще планировал в PBI скрипты писать, до сих пор руки не дошли!
Изменено: Vladimir Chebykin - 08.06.2021 13:13:04
 
Цитата
Сергей:Подумайте еще раз так ли это дорого
это вы ещё версию от bedvit'a не видели - его ценник убъёт всех конкурентов  8)
Во всех делах очень полезно периодически ставить знак вопроса к тому, что вы с давних пор считали не требующим доказательств (Бертран Рассел) ►Благодарности сюда◄
 
Цитата
Jack Famous написал:
это вы ещё версию от bedvit'a не видели - его ценник убъёт всех конкурентов  
А там есть поддержка библиотек Python? Если вам нужны определенные библиотеки Python (у вас ML или DS или вы финансист с определенным багажом знаний) вам никуда с лодочки не деться.
Изменено: Сергей - 08.06.2021 13:18:26
 
Сергей, то что во всей компании могут пользоваться это  да, не прочитал.
Желаю успехов ребятам с их продуктом.
В этом плане мне ближе философия майкрософта. Power BI на личное пользование- бесплатно. Потренировался, научился, понял что это, захотел распространять свои знания - можно приобрести лицензию Pro.
Совместить приятное с полезным для моего типа пользователя, когда хотелось бы  и питон освоить и от эксель не уходить, тут без шаманства не получится.
Но, как и сказал выше, желаю успехов создателям этого продукта.
Обновление:
Но если языком владеешь, клево что можно так на компанию приобрести и не париться кому отправил файлики, любой сможет открыть и использовать, это круто я думаю.
Но с третьей стороны на таком потоке использовать можно и VBA))
Но с четвертой стороны на питоне есть элементы датасаинс
Но с пятой стороны мне дико представлять датасаинс в эксель)))
Изменено: Lari - 08.06.2021 13:32:17
 
Цитата
Lari написал:
Но с пятой стороны мне дико представлять датасаинс в эксель)))
Я думаю как-то так должно это быть в России: один человек делает DS в Python, а начальник требует отчет в Excel для отчета на еженедельном совещании. После чего руководство с напряженными лицами рассматривает результаты и принимает решение, что первому нужно как-то ускорить данное направление работы... (Шутка)  
Изменено: Сергей - 08.06.2021 13:47:44
 
Сергей, забыл сказать — у нас на форуме уже давно есть Сергей и было бы хорошо, если бы вы хоть как-то изменили ник, чтобы вас различать  ;)
Во всех делах очень полезно периодически ставить знак вопроса к тому, что вы с давних пор считали не требующим доказательств (Бертран Рассел) ►Благодарности сюда◄
 
С этого момента обращаться ко мне по имени и отчеству  :D  
Изменено: vikttur - 08.06.2021 17:44:51
 
Для варианта
с предварительно созданной сводной

Код
Sub refresh()
Const f = "C:\temp\AntyPithon"
Set WshShell = CreateObject("WScript.Shell")
Set TextStream = WshShell.Exec("%comspec% /c chcp 1251 | dir " & f & "\*.xls* /s /b").StdOut
s = vbNullString
While Not TextStream.AtEndOfStream
    If s <> vbNullString Then
    s = s & vbCrLf & "Union ALL "
    End If
    s = s & "Select * FROM `" & Trim(TextStream.ReadLine()) & "`.`Sheet1$`"
Wend

With ThisWorkbook.Connections(1)
    .ODBCConnection.CommandText = s
    .refresh
End With
End Sub


запрос автоматом сформирован  такой
Скрытый текст


из проблем - кирилица в именах файлов и фиксированный `Sheet1$`

на боевых данных не проверял
Изменено: БМВ - 09.06.2021 07:17:46
По вопросам из тем форума, личку не читаю.
 
Цитата
БМВ написал:
"C:\temp\AntyPithon"
забавно!
Страницы: Пред. 1 2 3 4 5 6 След.
Наверх