Найти - Пользователи
Полная версия: требуется помощь openpyxl
Начало » Python для новичков » требуется помощь openpyxl
1
dimka77783
Всем доброго времени суток
Решил упростить себе задачу при форматировании таблиц эксель.
В столбце в каждой ячейке есть текс “Фамилия Имя Отчество, место работы, должность, процент участия”
требуется заменит на “Фамилия И.О., процент участия”

сверстал сам:

import openpyxl
path = “123.xlsx” #имя файла

wb_obj = openpyxl.load_workbook(path) #Открываем файл
sheet_obj = wb_obj.active #Выбираем активный лист таблицы(
m_row = sheet_obj.max_row

# Выводим значения в цикле
for i in range(2, m_row + 1):
cell_obj = sheet_obj.cell(row=i, column=16) # В column= подставляем номер нужной колонки
a=cell_obj.value
o=a.split()
n=len(o)
if n+i>8:
z=o
l=z+'.'
q=o
w=q+'.'
e=o
r=e+'.'
t=o
y=t+'.'
d=o+' ‘+l+w+’, '+o+', '+o+' ‘+r+y+’, '+o
print(d)
sheet_obj = d
wb_obj.save('123.xlsx')

else:

z=o
l=z+'.'
q=o
w=q+'.'
e=o
r=e+'.'
t=o
y=t+'.'
d=o+' ‘+l+w+’, '+o+', '+o+' ‘+r+y+’, '+o
print(d)
sheet_obj = d
wb_obj.save('123.xlsx')

в итоге только первая ячейка записывает в файл “Фамилия И.О., процент участия” как требуется
и выходит сообщение“Traceback (most recent call last):
File ”CUsers/Дима/Desktop/test/501.py", line 19, in <module>
e=o
IndexError: list index out of range

Подскажите пожалуйста как реализовать
xam1816
dimka77783
a=cell_obj.value
o=a.split()
n=len(o)
if n+i>8:
z=o
l=z+'.'
q=o
w=q+'.'
e=o
r=e+'.'
t=o
y=t+'.'
d=o+' ‘+l+w+’, ‘+o+’, ‘+o+’ ‘+r+y+’, '+o
print(d)

ребус типа
xam1816
а если сразу в ячейку записать?
 cell_obj.value = "Фамилия И.О., процент участия"
dimka77783
xam1816
а если сразу в ячейку записать?
Не совсем понятно как сразу
This is a "lo-fi" version of our main content. To view the full version with more information, formatting and images, please click here.
Powered by DjangoBB