Я использую точный скрипт ниже (кроме пути к файлу), чтобы попытаться преобразовать 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, а не моя выше.Любые решения будут оценены.