Преобразование xls в xlsx с использованием xlrd - PullRequest
0 голосов
/ 22 декабря 2018

Я использую точный скрипт ниже (кроме пути к файлу), чтобы попытаться преобразовать xls в xlsx.Сценарий выполнен успешно, но не выдает никаких результатов.Мне не хватает чего-то простого, например ввода значений переменных или имен файлов, или неправильного сохранения файла в формате xlsx?

    import xlrd
    import os
    from openpyxl.workbook import Workbook
    filenames = os.listdir("file_path")

    for fname in filenames:
        if fname.endswith(".xls"):
            def cvt_xls_to_xlsx(fname):
                book_xls = xlrd.open_workbook(fname)
                book_xlsx = Workbook()

                sheet_names = book_xls.sheet_names()
                for sheet_index in range(0,len(sheet_names)):
                    sheet_xls = book_xls.sheet_by_name(sheet_names[sheet_index])
                    if sheet_index == 0:
                        sheet_xlsx = book_xlsx.active
                        sheet_xlsx.title = sheet_names[sheet_index]
                    else:
                        sheet_xlsx = book_xlsx.create_sheet(title=sheet_names[sheet_index])

                    for row in range(0, sheet_xls.nrows):
                        for col in range(0, sheet_xls.ncols):
                            sheet_xlsx.cell(row = row+1 , column = col+1).value = sheet_xls.cell_value(row, col)

  cvt_xls_to_xlsx(fname)    
  book_xlsx.save(fname.xlsx)

Я обновил вышеупомянутый скрипт с помощью последних двух строк команд, но ятеперь появляется следующее сообщение об ошибке:

Файл "C: \ Users \ local \ Documents \ Tasks \ Python \ Excelconvert.py", строка 26, в cvt_xls_to_xlsx (имя_файла)

Файл "C: \ Users \ local \ Documents \ Tasks \ Python \ Excelconvert.py ", строка 10, в cvt_xls_to_xlsx book_xls = xlrd.open_workbook (fname)

Файл" C: \ Users \ local \ Python34 \ lib \ site "-packages \ xlrd__init __. py ", строка 157, в open_workbook ragged_rows = ragged_rows,

Файл" C: \ Users \ local \ Python34 \ lib \ site-packages \ xlrd \ book.py ", строка 92,в open_workbook_xls biff_version = bk.getbof (XL_WORKBOOK_GLOBALS)

Файл "C: \ Users \ local \ Python34 \ lib \ site-packages \ xlrd \ book.py", строка 1278, в getbof bof_error ('Ожидаемый BOFзапись; найдено% r '% self.mem [savpos: savpos + 8])

Файл "C: \ Users \ local \ Python34 \ lib \ site-packages \ xlrd \ book.py ", строка 1272, в bof_error поднять XLRDError ('Неподдерживаемый формат или поврежденный файл:' + msg) xlrd.biffh.XLRDError: Неподдерживаемый формат или поврежденный файл: ожидаемая запись BOF;найдено b '# - Copy'

Что означает "# - Copy"?Я видел, как другие предполагают, что это относится к формату файла, но обычно это ошибка XML, а не моя выше.Любые решения будут оценены.

...