2015-05-05 3 views
0

Я использую фрагмент кода ниже, чтобы скопировать данные в файл excel с помощью openpyxl.Копирование данных в excel - openpyxl

 for i, j in enumerate(fint): 
     _= ws1.cell(column=i +1, row=globdat.cycle, value=j) 

    wb.save(filename = dest_filename) 

НО

После этого я нашел код, чтобы стать очень медленно. есть ли лучший способ сделать это?

globdat.cycle - это счетчик для каждой итерации.

'fint' - это вектор строки с неизвестным количеством записей на каждой итерации.

Nb- Я работаю с большими объемами данных, поэтому работает только openpyxl.

ответ

0

К сожалению, из-за способа хранения данных в Excel выполнять операции копирования довольно сложно. Библиотека xlutils содержит некоторые функции, разработанные специально для этого, но я не знаю, работают ли они для файлов xlsx.

Если вам просто нужна часть данных, я бы предложил открыть файл для копирования из режима только для чтения и записать в другой режим только для записи. Это уменьшит использование памяти и будет довольно быстрым.

Для других ситуаций были высказаны некоторые предложения, сделанные в трекере ошибок: https://bitbucket.org/openpyxl/openpyxl/issue/171/

Смежные вопросы