πŸ”₯ Как ΠΏΠΈΡΠ°Ρ‚ΡŒ макросы Π² Excel Π½Π° Python: ΠΏΠΎΠ»Π½ΠΎΠ΅ руководство

Для написания макросов Π² Excel Π½Π° Python, Π²Ρ‹ ΠΌΠΎΠΆΠ΅Ρ‚Π΅ ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚ΡŒ Π±ΠΈΠ±Π»ΠΈΠΎΡ‚Π΅ΠΊΡƒ openpyxl. Π’ΠΎΡ‚ простой ΠΏΡ€ΠΈΠΌΠ΅Ρ€:


    from openpyxl import Workbook
    
    # Π‘ΠΎΠ·Π΄Π°Π½ΠΈΠ΅ Π½ΠΎΠ²ΠΎΠ³ΠΎ Ρ„Π°ΠΉΠ»Π° ΠΈ Π°ΠΊΡ‚ΠΈΠ²Π½ΠΎΠ³ΠΎ листа
    wb = Workbook()
    sheet = wb.active
    
    # Π—Π°ΠΏΠΈΡΡŒ значСния Π² ячСйку A1
    sheet['A1'] = 'ΠŸΡ€ΠΈΠ²Π΅Ρ‚, ΠΌΠΈΡ€!'
    
    # Π‘ΠΎΡ…Ρ€Π°Π½Π΅Π½ΠΈΠ΅ Ρ„Π°ΠΉΠ»Π°
    wb.save('example.xlsx')
    

Π’ этом ΠΏΡ€ΠΈΠΌΠ΅Ρ€Π΅ ΠΌΡ‹ создаСм Π½ΠΎΠ²Ρ‹ΠΉ Ρ„Π°ΠΉΠ» Excel, записываСм Π·Π½Π°Ρ‡Π΅Π½ΠΈΠ΅ "ΠŸΡ€ΠΈΠ²Π΅Ρ‚, ΠΌΠΈΡ€!" Π² ячСйку A1 ΠΈ сохраняСм Ρ„Π°ΠΉΠ» с ΠΈΠΌΠ΅Π½Π΅ΠΌ "example.xlsx". Π’Ρ‹ ΠΌΠΎΠΆΠ΅Ρ‚Π΅ Π½Π°ΡΡ‚Ρ€Π°ΠΈΠ²Π°Ρ‚ΡŒ ΠΈ ΡƒΠΏΡ€Π°Π²Π»ΡΡ‚ΡŒ Excel-Ρ„Π°ΠΉΠ»Π°ΠΌΠΈ, ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΡƒΡ ΠΌΠ΅Ρ‚ΠΎΠ΄Ρ‹ ΠΈ свойства Π±ΠΈΠ±Π»ΠΈΠΎΡ‚Π΅ΠΊΠΈ openpyxl.

Π”Π΅Ρ‚Π°Π»ΡŒΠ½Ρ‹ΠΉ ΠΎΡ‚Π²Π΅Ρ‚

Как ΠΏΠΈΡΠ°Ρ‚ΡŒ макросы Π² Excel Π½Π° Python

Excel - это ΠΌΠΎΡ‰Π½ΠΎΠ΅ ΠΈΠ½ΡΡ‚Ρ€ΡƒΠΌΠ΅Π½Ρ‚Π°Π»ΡŒΠ½ΠΎΠ΅ срСдство, ΠΊΠΎΡ‚ΠΎΡ€ΠΎΠ΅ позволяСт Π²Π°ΠΌ Π°Π²Ρ‚ΠΎΠΌΠ°Ρ‚ΠΈΠ·ΠΈΡ€ΠΎΠ²Π°Ρ‚ΡŒ Ρ€ΡƒΡ‚ΠΈΠ½Π½Ρ‹Π΅ Π·Π°Π΄Π°Ρ‡ΠΈ с ΠΏΠΎΠΌΠΎΡ‰ΡŒΡŽ макросов. ΠœΠ°ΠΊΡ€ΠΎΡΡ‹ Π² Excel - это Π½Π°Π±ΠΎΡ€ инструкций, записанных Π½Π° языкС программирования VBA (Visual Basic for Applications). Однако, Ссли Π²Ρ‹ ΠΏΡ€Π΅Π΄ΠΏΠΎΡ‡ΠΈΡ‚Π°Π΅Ρ‚Π΅ ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚ΡŒ Python для Π°Π²Ρ‚ΠΎΠΌΠ°Ρ‚ΠΈΠ·Π°Ρ†ΠΈΠΈ своих Π·Π°Π΄Π°Ρ‡ Π² Excel, Π²Ρ‹ Ρ‚Π°ΠΊΠΆΠ΅ ΠΌΠΎΠΆΠ΅Ρ‚Π΅ ΠΏΠΈΡΠ°Ρ‚ΡŒ макросы Π½Π° Python. Π’ этой ΡΡ‚Π°Ρ‚ΡŒΠ΅ я ΠΏΠΎΠ΄Ρ€ΠΎΠ±Π½ΠΎ объясню процСсс написания макросов Π² Excel Π½Π° Python.

Π¨Π°Π³ 1: Установка Π½Π΅ΠΎΠ±Ρ…ΠΎΠ΄ΠΈΠΌΡ‹Ρ… инструмСнтов

ΠŸΡ€Π΅ΠΆΠ΄Π΅ Ρ‡Π΅ΠΌ Π½Π°Ρ‡Π°Ρ‚ΡŒ ΠΏΠΈΡΠ°Ρ‚ΡŒ макросы Π² Excel Π½Π° Python, Π²Π°ΠΌ понадобится ΡƒΡΡ‚Π°Π½ΠΎΠ²ΠΈΡ‚ΡŒ Π½Π΅ΠΎΠ±Ρ…ΠΎΠ΄ΠΈΠΌΡ‹Π΅ инструмСнты. Π’Π°ΠΌ Π½ΡƒΠΆΠ½ΠΎ ΡƒΡΡ‚Π°Π½ΠΎΠ²ΠΈΡ‚ΡŒ Python Π½Π° ваш ΠΊΠΎΠΌΠΏΡŒΡŽΡ‚Π΅Ρ€, Π° Ρ‚Π°ΠΊΠΆΠ΅ ΡƒΡΡ‚Π°Π½ΠΎΠ²ΠΈΡ‚ΡŒ Π±ΠΈΠ±Π»ΠΈΠΎΡ‚Π΅ΠΊΡƒ `openpyxl`, которая позволяСт Ρ€Π°Π±ΠΎΡ‚Π°Ρ‚ΡŒ с Ρ„Π°ΠΉΠ»Π°ΠΌΠΈ Excel.

pip install openpyxl

Π¨Π°Π³ 2: ΠžΡ‚ΠΊΡ€Ρ‹Ρ‚ΠΈΠ΅ Ρ„Π°ΠΉΠ»Π° Excel

ΠŸΠ΅Ρ€Π²Ρ‹ΠΌ шагом Π² написании макроса Π½Π° Python являСтся ΠΎΡ‚ΠΊΡ€Ρ‹Ρ‚ΠΈΠ΅ Ρ„Π°ΠΉΠ»Π° Excel. Для этого ΠΌΡ‹ Π±ΡƒΠ΄Π΅ΠΌ ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚ΡŒ Π±ΠΈΠ±Π»ΠΈΠΎΡ‚Π΅ΠΊΡƒ `openpyxl`. НиТС ΠΏΡ€ΠΈΠ²Π΅Π΄Π΅Π½ ΠΏΡ€ΠΈΠΌΠ΅Ρ€ ΠΊΠΎΠ΄Π°, ΠΊΠΎΡ‚ΠΎΡ€Ρ‹ΠΉ ΠΎΡ‚ΠΊΡ€Ρ‹Π²Π°Π΅Ρ‚ Ρ„Π°ΠΉΠ» "example.xlsx".

from openpyxl import load_workbook

wb = load_workbook('example.xlsx')

Π¨Π°Π³ 3: Π’Ρ‹Π±ΠΎΡ€ листа Π² Excel

ПослС открытия Ρ„Π°ΠΉΠ»Π° Excel, Π²Ρ‹ ΠΌΠΎΠΆΠ΅Ρ‚Π΅ Π²Ρ‹Π±Ρ€Π°Ρ‚ΡŒ ΠΊΠΎΠ½ΠΊΡ€Π΅Ρ‚Π½Ρ‹ΠΉ лист, с ΠΊΠΎΡ‚ΠΎΡ€Ρ‹ΠΌ Π²Ρ‹ Ρ…ΠΎΡ‚ΠΈΡ‚Π΅ Ρ€Π°Π±ΠΎΡ‚Π°Ρ‚ΡŒ. Для этого ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΡƒΠΉΡ‚Π΅ ΠΌΠ΅Ρ‚ΠΎΠ΄ `active` ΠΎΠ±ΡŠΠ΅ΠΊΡ‚Π° `Workbook`. НиТС ΠΏΡ€ΠΈΠ²Π΅Π΄Π΅Π½ ΠΏΡ€ΠΈΠΌΠ΅Ρ€ ΠΊΠΎΠ΄Π°, ΠΊΠΎΡ‚ΠΎΡ€Ρ‹ΠΉ Π²Ρ‹Π±ΠΈΡ€Π°Π΅Ρ‚ Π°ΠΊΡ‚ΠΈΠ²Π½Ρ‹ΠΉ лист Π² Ρ„Π°ΠΉΠ»Π΅ Excel.

sheet = wb.active

Π¨Π°Π³ 4: Π Π°Π±ΠΎΡ‚Π° с Π΄Π°Π½Π½Ρ‹ΠΌΠΈ Π² Excel

Π’Π΅ΠΏΠ΅Ρ€ΡŒ, ΠΊΠΎΠ³Π΄Π° Π²Ρ‹ ΠΎΡ‚ΠΊΡ€Ρ‹Π»ΠΈ Ρ„Π°ΠΉΠ» ΠΈ Π²Ρ‹Π±Ρ€Π°Π»ΠΈ лист, Π²Ρ‹ ΠΌΠΎΠΆΠ΅Ρ‚Π΅ Π½Π°Ρ‡Π°Ρ‚ΡŒ Ρ€Π°Π±ΠΎΡ‚Π°Ρ‚ΡŒ с Π΄Π°Π½Π½Ρ‹ΠΌΠΈ Π² Excel. Π’Ρ‹ ΠΌΠΎΠΆΠ΅Ρ‚Π΅ ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚ΡŒ Ρ€Π°Π·Π»ΠΈΡ‡Π½Ρ‹Π΅ ΠΌΠ΅Ρ‚ΠΎΠ΄Ρ‹ ΠΈ Π°Ρ‚Ρ€ΠΈΠ±ΡƒΡ‚Ρ‹ ΠΎΠ±ΡŠΠ΅ΠΊΡ‚Π° `Worksheet`, Ρ‡Ρ‚ΠΎΠ±Ρ‹ Ρ‡ΠΈΡ‚Π°Ρ‚ΡŒ, Π·Π°ΠΏΠΈΡΡ‹Π²Π°Ρ‚ΡŒ ΠΈ ΠΈΠ·ΠΌΠ΅Π½ΡΡ‚ΡŒ Π΄Π°Π½Π½Ρ‹Π΅ Π² ячСйках Excel.

Π’ΠΎΡ‚ Π½Π΅ΠΊΠΎΡ‚ΠΎΡ€Ρ‹Π΅ основныС ΠΎΠΏΠ΅Ρ€Π°Ρ†ΠΈΠΈ, ΠΊΠΎΡ‚ΠΎΡ€Ρ‹Π΅ Π²Ρ‹ ΠΌΠΎΠΆΠ΅Ρ‚Π΅ Π²Ρ‹ΠΏΠΎΠ»Π½ΠΈΡ‚ΡŒ:

  • Π§Ρ‚Π΅Π½ΠΈΠ΅ значСния ΠΈΠ· ячСйки: ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΡƒΠΉΡ‚Π΅ Π°Ρ‚Ρ€ΠΈΠ±ΡƒΡ‚ `value` для доступа ΠΊ Π·Π½Π°Ρ‡Π΅Π½ΠΈΡŽ ячСйки. НапримСр, `value = sheet['A1'].value`.
  • Π—Π°ΠΏΠΈΡΡŒ значСния Π² ячСйку: ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΡƒΠΉΡ‚Π΅ ΠΎΠΏΠ΅Ρ€Π°Ρ‚ΠΎΡ€ присваивания для записи значСния Π² ячСйку. НапримСр, `sheet['A1'] = 'Hello, World!'`.
  • ИзмСнСниС Ρ„ΠΎΡ€ΠΌΠ°Ρ‚Π° ячСйки: ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΡƒΠΉΡ‚Π΅ Π°Ρ‚Ρ€ΠΈΠ±ΡƒΡ‚Ρ‹ ΠΈ ΠΌΠ΅Ρ‚ΠΎΠ΄Ρ‹ ΠΎΠ±ΡŠΠ΅ΠΊΡ‚Π° `Cell`, Ρ‡Ρ‚ΠΎΠ±Ρ‹ ΠΈΠ·ΠΌΠ΅Π½ΠΈΡ‚ΡŒ Ρ„ΠΎΡ€ΠΌΠ°Ρ‚ ячСйки, Π½Π°ΠΏΡ€ΠΈΠΌΠ΅Ρ€, ΡˆΡ€ΠΈΡ„Ρ‚, Ρ†Π²Π΅Ρ‚, Π²Ρ‹Ρ€Π°Π²Π½ΠΈΠ²Π°Π½ΠΈΠ΅ ΠΈ Ρ‚. Π΄.

Π¨Π°Π³ 5: Запуск макроса

Π’Π΅ΠΏΠ΅Ρ€ΡŒ, ΠΊΠΎΠ³Π΄Π° Π²Ρ‹ Π·Π½Π°Π΅Ρ‚Π΅, ΠΊΠ°ΠΊ Ρ€Π°Π±ΠΎΡ‚Π°Ρ‚ΡŒ с Π΄Π°Π½Π½Ρ‹ΠΌΠΈ Π² Excel, Π²Ρ‹ ΠΌΠΎΠΆΠ΅Ρ‚Π΅ Π½Π°Ρ‡Π°Ρ‚ΡŒ написаниС макроса Π½Π° Python. Для этого Π²Π°ΠΌ Π½ΡƒΠΆΠ½ΠΎ ΠΎΠΏΡ€Π΅Π΄Π΅Π»ΠΈΡ‚ΡŒ Ρ„ΡƒΠ½ΠΊΡ†ΠΈΡŽ, которая Π±ΡƒΠ΄Π΅Ρ‚ Π²Ρ‹ΠΏΠΎΠ»Π½ΡΡ‚ΡŒ ΠΎΠΏΡ€Π΅Π΄Π΅Π»Π΅Π½Π½Ρ‹Π΅ дСйствия Π² Excel. НиТС ΠΏΡ€ΠΈΠ²Π΅Π΄Π΅Π½ ΠΏΡ€ΠΈΠΌΠ΅Ρ€ ΠΊΠΎΠ΄Π°, ΠΊΠΎΡ‚ΠΎΡ€Ρ‹ΠΉ создаСт Π½ΠΎΠ²Ρ‹ΠΉ лист Π² Ρ„Π°ΠΉΠ»Π΅ Excel ΠΈ записываСт Π΄Π°Π½Π½Ρ‹Π΅ Π² Π½Π΅Π³ΠΎ.

def run_macro():
    new_sheet = wb.create_sheet('New Sheet')
    new_sheet['A1'] = 'Hello, World!'
    wb.save('example.xlsx')

run_macro()

Π¨Π°Π³ 6: Запуск макроса ΠΈΠ· Python

Π’Π΅ΠΏΠ΅Ρ€ΡŒ, ΠΊΠΎΠ³Π΄Π° Ρƒ вас Π΅ΡΡ‚ΡŒ макрос Π½Π° Python, Π²Ρ‹ ΠΌΠΎΠΆΠ΅Ρ‚Π΅ Π·Π°ΠΏΡƒΡΡ‚ΠΈΡ‚ΡŒ Π΅Π³ΠΎ ΠΈΠ· вашСй ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΡ‹ Python. Для этого просто Π²Ρ‹Π·ΠΎΠ²ΠΈΡ‚Π΅ Ρ„ΡƒΠ½ΠΊΡ†ΠΈΡŽ макроса. НиТС ΠΏΡ€ΠΈΠ²Π΅Π΄Π΅Π½ ΠΏΡ€ΠΈΠΌΠ΅Ρ€ ΠΊΠΎΠ΄Π°, ΠΊΠΎΡ‚ΠΎΡ€Ρ‹ΠΉ запускаСт макрос `run_macro`.

run_macro()

Π¨Π°Π³ 7: Π‘ΠΎΡ…Ρ€Π°Π½Π΅Π½ΠΈΠ΅ ΠΈΠ·ΠΌΠ΅Π½Π΅Π½ΠΈΠΉ

ПослС выполнСния макроса, Π½Π΅ Π·Π°Π±ΡƒΠ΄ΡŒΡ‚Π΅ ΡΠΎΡ…Ρ€Π°Π½ΠΈΡ‚ΡŒ измСнСния Π² Ρ„Π°ΠΉΠ»Π΅ Excel. Для этого ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΡƒΠΉΡ‚Π΅ ΠΌΠ΅Ρ‚ΠΎΠ΄ `save` ΠΎΠ±ΡŠΠ΅ΠΊΡ‚Π° `Workbook`. НиТС ΠΏΡ€ΠΈΠ²Π΅Π΄Π΅Π½ ΠΏΡ€ΠΈΠΌΠ΅Ρ€ ΠΊΠΎΠ΄Π°, ΠΊΠΎΡ‚ΠΎΡ€Ρ‹ΠΉ сохраняСт измСнСния Π² Ρ„Π°ΠΉΠ»Π΅ "example.xlsx".

wb.save('example.xlsx')

Π—Π°ΠΊΠ»ΡŽΡ‡Π΅Π½ΠΈΠ΅

Π’Π΅ΠΏΠ΅Ρ€ΡŒ Π²Ρ‹ Π·Π½Π°Π΅Ρ‚Π΅, ΠΊΠ°ΠΊ ΠΏΠΈΡΠ°Ρ‚ΡŒ макросы Π² Excel Π½Π° Python. Π‘ ΠΏΠΎΠΌΠΎΡ‰ΡŒΡŽ Π±ΠΈΠ±Π»ΠΈΠΎΡ‚Π΅ΠΊΠΈ `openpyxl` ΠΈ Π·Π½Π°Π½ΠΈΠΉ Python Π²Ρ‹ ΠΌΠΎΠΆΠ΅Ρ‚Π΅ Π°Π²Ρ‚ΠΎΠΌΠ°Ρ‚ΠΈΠ·ΠΈΡ€ΠΎΠ²Π°Ρ‚ΡŒ свои Π·Π°Π΄Π°Ρ‡ΠΈ Π² Excel. НадСюсь, эта ΡΡ‚Π°Ρ‚ΡŒΡ ΠΏΠΎΠΌΠΎΠ³Π»Π° Π²Π°ΠΌ ΠΏΠΎΠ½ΡΡ‚ΡŒ процСсс написания макросов Π² Excel Π½Π° Python ΠΈ Π²Π΄ΠΎΡ…Π½ΠΎΠ²ΠΈΠ»Π° вас Π½Π° созданиС собствСнных макросов.

Π’ΠΈΠ΄Π΅ΠΎ ΠΏΠΎ Ρ‚Π΅ΠΌΠ΅

ΠŸΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΠΈΡ€ΠΎΠ²Π°Π½ΠΈΠ΅ макросов Π½Π° VBA Π² Excel

ΠœΠ°ΠΊΡ€ΠΎΡΡ‹ Excel для Π½Π°Ρ‡ΠΈΠ½Π°ΡŽΡ‰ΠΈΡ… | ΠŸΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΠΈΡ€ΠΎΠ²Π°Π½ΠΈΠ΅ Π² excel VBA ΠΏΡ€ΠΈΠΌΠ΅Ρ€Ρ‹

[Python] ΠœΠ°ΠΊΡ€ΠΎΡ Π·Π° 5 ΠΌΠΈΠ½ΡƒΡ‚ | АвтоматизируСм ΠΌΡ‹ΡˆΠΊΡƒ ΠΈ ΠΊΠ»Π°Π²ΠΈΠ°Ρ‚ΡƒΡ€Ρƒ с ΠΏΠΎΠΌΠΎΡ‰ΡŒΡŽ AutoGUI

ΠŸΠΎΡ…ΠΎΠΆΠΈΠ΅ ΡΡ‚Π°Ρ‚ΡŒΠΈ:

πŸ”§ Как ΠΏΠΎΡΡ‚Π°Π²ΠΈΡ‚ΡŒ utf-8 Π² ΠŸΠΈΡ‚ΠΎΠ½Π΅: ΠΏΠΎΠ΄Ρ€ΠΎΠ±Π½Ρ‹ΠΉ Π³Π°ΠΉΠ΄ ΠΈ инструкция

Π—Π°Ρ‡Π΅ΠΌ ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚ΡŒ for ΠΈ in Π² Python: основы ΠΈ ΠΏΡ€ΠΈΠΌΠ΅Ρ€Ρ‹

πŸ”Ž Как Π² Python вывСсти тСкст лСсСнкой?

πŸ”₯ Как ΠΏΠΈΡΠ°Ρ‚ΡŒ макросы Π² Excel Π½Π° Python: ΠΏΠΎΠ»Π½ΠΎΠ΅ руководство

πŸ€– Как ΡΠ΄Π΅Π»Π°Ρ‚ΡŒ, Ρ‡Ρ‚ΠΎΠ±Ρ‹ Π±ΠΎΡ‚ отправлял ΠΊΠ°Ρ€Ρ‚ΠΈΠ½ΠΊΡƒ с ΠΏΠΎΠΌΠΎΡ‰ΡŒΡŽ Python?

πŸ“§ Как ΠΎΡ‚ΠΏΡ€Π°Π²ΠΈΡ‚ΡŒ Ρ„Π°ΠΉΠ» ΠΏΠΎ ΠΏΠΎΡ‡Ρ‚Π΅ с ΠΏΠΎΠΌΠΎΡ‰ΡŒΡŽ Python: простой Π³Π°ΠΉΠ΄ ΠΈ ΠΏΡ€ΠΈΠΌΠ΅Ρ€Ρ‹ ΠΊΠΎΠ΄Π°

πŸ”Œ Как Π²ΠΊΠ»ΡŽΡ‡ΠΈΡ‚ΡŒ ΠΌΠΎΠ΄ΡƒΠ»ΡŒ Π² ΠΏΠΈΡ‚ΠΎΠ½Π΅: пошаговоС руководство