Программа Python, которая пишет в файл Excel пишет только последнюю строку - PullRequest
0 голосов
/ 17 марта 2019

Я установил модуль openpyxl, и теперь я пытаюсь записать некоторые данные в файл Excel, чтобы заполнить файл Excel на одном листе таким образом:

["01/01/2016", "05:00:00", 3] в строке 1, столбцы A, B, C

["01/02/2016", "06:00:00", 4] в строку 2, столбцы A, B, C

["01/03/2016", "07:00:00", 5] в строку 3, столбцы A, B, C

["01/04/2016", "08:00:00", 6] в строку 4, столбцы A, B, C

["01/05/2016", "09:00:00", 7] в строку 5, столбцы A, B, C

Когда я пытаюсь запустить код, я получаю следующие результаты:

  • строка 1, столбцы A - 01/05/2016
  • строка 1, столбцы B - 09: 00: 00
  • строка 1, столбцы C - 7

Код:

import os, sys
from openpyxl import Workbook
from datetime import datetime

dt = datetime.now()

list_values = [["01/01/2016", "05:00:00", 3],
              ["01/02/2016", "06:00:00", 4],
              ["01/03/2016", "07:00:00", 5],
              ["01/04/2016", "08:00:00", 6],
              ["01/05/2016", "09:00:00", 7]]

wb = Workbook()
sheet = wb.active
sheet.title = "Data"

row = 1
sheet['A' + str(row)] = "Date"
sheet['B' + str(row)] = "Hour"
sheet['C' + str(row)] = "Value"

for item in list_values:
    sheet['A' + str(row)] = item[0]
    sheet['B' + str(row)] = item[1]
    sheet['C' + str(row)] = item[2]
    row =+ 1

filename = 'Book_3.xlsx'
os.chdir(sys.path[0])
os.system('start excel.exe "%s\\%s"' %(sys.path[0], filename,))

Результат: result

1 Ответ

0 голосов
/ 17 марта 2019

Вы использовали = + вместо + =.Ниже код должен работать.Я также изменяю sys.path [0] на os.getcwd (), который пишет в текущий рабочий каталог.Также добавлен wb.save, так как иначе код не выдал вывод.

import os, sys
from openpyxl import Workbook
from datetime import datetime

dt = datetime.now()

list_values = [["01/01/2016", "05:00:00", 3],
              ["01/02/2016", "06:00:00", 4],
              ["01/03/2016", "07:00:00", 5],
              ["01/04/2016", "08:00:00", 6],
              ["01/05/2016", "09:00:00", 7]]

wb = Workbook()
sheet = wb.active
sheet.title = "Data"

row = 1
sheet['A' + str(row)] = "Date"
sheet['B' + str(row)] = "Hour"
sheet['C' + str(row)] = "Value"

for item in list_values:
    sheet['A' + str(row)] = item[0]
    sheet['B' + str(row)] = item[1]
    sheet['C' + str(row)] = item[2]
    row += 1


dest_filename = 'Book_3.xlsx'
wb.save(filename = dest_filename)
os.chdir(os.getcwd())
os.system('start excel.exe "%s\\%s"' %(os.getcwd(), filename,))
...