1
resposta

Problema ao acessar e modificar uma planilha Excel que já está aberta usando Python e pywin32

Eu estou desenvolvendo um script em Python para automatizar a manipulação de uma planilha Excel. A planilha já está aberta e em uso quando o script Python é executado. No entanto, estou enfrentando dificuldades para acessar e modificar essa planilha usando a biblioteca pywin32, especialmente porque o Python está tentando abrir o arquivo novamente, o que resulta em erros de permissão (PermissionError) ou falha na execução da macro (pywintypes.com_error). Quero conseguir executar o scipt enquanto a planilha está aberta.

1 resposta

Oii Guilherme, tudo bem?

Quando uma planilha do Excel já está aberta e você tenta manipulá-la com o Python usando a biblioteca pywin32, é importante referenciar a instância do Excel que já está em execução, em vez de tentar abrir o arquivo novamente.

import win32com.client

# Conectar-se à instância do Excel que já está em execução
excel = win32com.client.Dispatch("Excel.Application")

# Obter a referência à planilha aberta
workbook = excel.Workbooks("nome_da_sua_planilha.xlsx")

# Agora você pode manipular a planilha como desejar
sheet = workbook.Sheets("Nome_da_Sua_Aba")

# Exemplo: escrever um valor em uma célula
sheet.Range("A1").Value = "Olá, Mundo!"

# Se precisar salvar as alterações
workbook.Save()

Lembra de substituir "nome_da_sua_planilha.xlsx" pelo nome real do seu arquivo e "Nome_da_Sua_Aba" pelo nome da aba que você deseja manipular.

Algumas dicas adicionais:

  1. Verifique se o nome do arquivo e da aba estão corretos.
  2. Se houver mais de uma instância do Excel aberta, você pode precisar iterar sobre as instâncias para encontrar a correta.
  3. Lembre-se de que o Excel deve estar aberto e a planilha deve estar visível para que o script funcione corretamente.

Esse é um caminho que você pode seguir, você pode ter que fazer modificações no seu projeto, espero que te ajude.

Um abraço.