Ошибка при получении файла при открытии листа Excel - PullRequest
0 голосов
/ 31 января 2020

Я пытаюсь прочитать несколько значений из листа Excel, затем что-то проверяю и записываю в другой файл Xls. Но по какой-то причине в таблице Excel отображаются только заголовки. Когда открывается таблица Excel, появляется сообщение Ошибка файла: данные могут быть потеряны .

import os
from openpyxl import load_workbook
import pandas as pd
import numpy as np
import xlwt

SOURCE_PATH = '/Users/rradhakrishnan/Documents/catalogReport.xlsx'


def read_workbook(source_path):

    wb = load_workbook(source_path, data_only=True)
    ws = wb.get_sheet_by_name('catalogReport_Titles')

    df = pd.read_excel(SOURCE_PATH, index_col=None, na_values=['NA'], usecols="B,Y,Z")
    start = 0
    print "Title                           Season Number                             Episode Number"
    book = xlwt.Workbook(encoding="utf-8")
    sheet = book.add_sheet("Missing Episodes")
    sheet.write(0, 0, "Title", xlwt.easyxf(
        "pattern: pattern solid, fore_color black; font: name Garamond;font: height 320; font: color white, bold True;align: horizontal center"))
    sheet.write(0, 1, "Season Number", xlwt.easyxf(
        "pattern: pattern solid, fore_color black; font: name Garamond; font: height 320;font: color white, bold True;align: horizontal center"))
    sheet.write(0, 2, "Episode Number", xlwt.easyxf(
        "pattern: pattern solid, fore_color black; font: name Garamond; font: height 320 ;font: color white, bold True;align: horizontal center"))

    sheet.col(0).width = 256 * 20
    sheet.col(1).width = 256 * 40
    sheet.col(2).width = 256 * 25
    count = 0
    for index, row in df.iterrows():
        count+=1
        previous_episode = row.episodeNumber

        if row.episodeNumber ==1:
            start =0
            start+=1


        if ((row.episodeNumber)==start+1):
            start+=1

        if row.episodeNumber>start:
            start += 1
            while(row.episodeNumber>start):
                start+=1
                count += 1
                print row.Title, row.seasonNumber, start -1
                sheet.write(count, 0, "row.Title")
                sheet.write(count, 1, row.seasonNumber)
                sheet.write(count, 2, start -1)

    book.save("/Users/rradhakrishnan/Documents/missing_episodes.xls")

def main():

    read_workbook(SOURCE_PATH)


if __name__ == '__main__':
    if os.path.exists("/Users/rradhakrishnan/Documents/missing_episodes.xls"):
        os.remove("/Users/rradhakrishnan/Documents/missing_episodes.xls")
    main()

Есть идеи, почему значения не сохраняются в таблице Excel?

...