@dim369lis

Не выходит записать данные из excel в dbf файл. Как результат цикла правильно присвоить одной переменной?

Python3 Я новичёк, не получается записать данные из excel в dbf файл, записывает одну строку последнию,
Как результат цикла присвоить одной переменной и записать все строки получаемые из excel в dbf?
import openpyxl
import os
import dbf
book = openpyxl.open("C:\\pypypy\\январь_2401231.xlsx", read_only=True)
sheet = book.active
for row in range(2, sheet.max_row + 1):
     FIO = sheet[row][0].value
     ADR = sheet[row][1].value
     TEPLO = sheet[row][3].value
     VODA = sheet[row][4].value
     ELECTRO = sheet[row][5].value 
     goods = (FIO, ADR, TEPLO, VODA, ELECTRO)
    #print(goods)
table = dbf.Table('kvpl.dbf', 'FIO C(60); ADR C(13); TEPLO F(19,5); VODA F(19,5);  ELECTRO F(19, 5)', codepage='cp866')
table.open(mode=dbf.READ_WRITE)
table.append(tuple(goods))
table.close()
  • Вопрос задан
  • 191 просмотр
Решения вопроса 1
iglebov
@iglebov
Backend-разработчик
Попробуйте так:
import openpyxl
import os
import dbf
book = openpyxl.open("C:\\pypypy\\январь_2401231.xlsx", read_only=True)
sheet = book.active
table = dbf.Table('kvpl.dbf', 'FIO C(60); ADR C(13); TEPLO F(19,5); VODA F(19,5);  ELECTRO F(19, 5)', codepage='cp866')
table.open(mode=dbf.READ_WRITE)
for row in range(2, sheet.max_row + 1):
     FIO = sheet[row][0].value
     ADR = sheet[row][1].value
     TEPLO = sheet[row][3].value
     VODA = sheet[row][4].value
     ELECTRO = sheet[row][5].value 
     goods = (FIO, ADR, TEPLO, VODA, ELECTRO)
     table.append(goods)
table.close()


Либо если Вам нужно использовать:
table.append(tuple(goods))
то просто заменить последнюю строку в конце цикла for.
Ответ написан
Пригласить эксперта
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Войти через центр авторизации
Похожие вопросы