Este é o meu código:
import os
import sys
my_path = 'C:/Users/S.Fazlollahzadeh/Desktop/shell-scripts/test only/excel'
os.chdir(my_path)
sys.path.append(my_path)
from openpyxl import Workbook
names = ['name1', 'name2', 'name3', 'name4']
wb = Workbook()
ws = wb.active
for name in names:
ws.title = name
wb.create_sheet(name)
wb.save("sample.xlsx")
quit()
Os nomes das folhas são:
name4
name11
name21
name31
name41
Embora devesse ser:
name1
name2
name3
name4
O que estou fazendo de errado?
o problema é que você está renomeando a planilha ativa com um de seus nomes e, em seguida, tentando criar uma planilha com o mesmo nome (
wb.create_sheet(name)
), gerando uma planilha com{name}1
. Você também não está trocando sua planilha ativavocê pode remover a linha
ws.title = name
e excluir a planilha ativa original da pasta de trabalho (mudar para uma planilha diferente se tiver mais trabalho no script)O problema é que você está criando planilhas com nomes que já existem.
A maneira correta de criar uma planilha é uma das seguintes:
ou: