Как я могу ускорить чтение моей программой openpyxl файлов Excel .xlsx? - PullRequest
0 голосов
/ 04 мая 2020

Как и многим людям, мне нужно читать как файлы .xls (я называю их S-файлами, используя xlrd), так и .xlsx-файлами (файлы X, используя openpyxl), в обоих случаях файлы размером около 30 000 строк. И в обоих случаях я просто копирую все данные Excel, считанные в файл .csv, никакой другой обработки, а только ввод / вывод.

Но операции с файлом X более чем в 200 раз медленнее, чем для .xls, например, чтение файла .xlsx с 30 000 строками теперь занимает 2 минуты по сравнению с 1/2 секунды для .xls с xlrd. У нас есть тысячи файлов для обработки, поэтому время каждого файла имеет значение.

Является ли openpyxl намного медленнее, или мне нужно что-то сделать, например, освободить какой-то ресурс в конце каждой строки?

Кстати, я сделал несколько больших улучшений, используя read_only = True и читая строку за раз, а не ячейку за ячейкой, как показано в следующем фрагменте кода. Спасибо blog.davep.org https://blog.davep.org/2018/06/02/a_little_speed_issue_with_openpyxl.html

    wb = openpyxl.load_workbook("excel_file.xlsx",  data_only=True,  read_only=True)
    sheet = wb.active
    for row in sheet.rows:
        for cell in row:
            cell_from_excel = cell.value
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...