Уведомления

Группа в Telegram: @pythonsu

#1 Дек. 27, 2017 13:34:40

AlCat
Зарегистрирован: 2017-11-29
Сообщения: 12
Репутация: +  0  -
Профиль   Отправить e-mail  

работа с xls файлом

Добрый день.
Есть xls файл, в него надо добавить 5 000 строк, но не сразу, а по одной.
Вроде на ум приходит xlrd и xlwt. Но при добавлении каждой строки мне тогда придется открыть файл, считать содержимое в массив, закрыть файл, добавить элементы в массив создать пустой файл с тем же именем, записать массив в файл, закрыть файл. …..и так 5 000 раз.
Сразу все строки записывать нельзя, таковы особенности решаемой задачи.
Посоветуйте, с помощью чего можно это сделать.

Офлайн

#2 Дек. 27, 2017 15:53:19

JOHN_16
От: Россия, Петропавловск-Камчатск
Зарегистрирован: 2010-03-22
Сообщения: 3292
Репутация: +  221  -
Профиль   Отправить e-mail  

работа с xls файлом

Не верится что это особенности задачи. Потому что это звучит настолько по тупому.
И вы что то тут лишнего наговорили. Какой открыть файл, какой массив?
Чего вы этим добиваетесь?



_________________________________________________________________________________
полезный блог о python john16blog.blogspot.com

Офлайн

#3 Дек. 27, 2017 22:48:33

doza_and
От:
Зарегистрирован: 2010-08-15
Сообщения: 4138
Репутация: +  253  -
Профиль   Отправить e-mail  

работа с xls файлом

AlCat
Сразу все строки записывать нельзя, таковы особенности решаемой задачи.
Посоветуйте, с помощью чего можно это сделать.
Это очень просто сделать. Вам надо полностью отказаться от xls и записывать данные в текстовый файл в режиме append (как собственно все нормальные логи и делаются). Если кому надо он без проблем загрузит в exel вашу таблицу.

Это думаю даст примерно следующий результат:
  • код записи данных на питоне намного проще
  • размер файла в 10 раз меньше
  • скорость записи в 100 раз выше
  • Количество программных средств которыми вы сможете смотреть и обрабатывать эти данные будет наверное на 3 порядка больше. те данные будут гораздо более доступными.



Отредактировано doza_and (Дек. 27, 2017 22:54:19)

Офлайн

#4 Дек. 28, 2017 09:19:28

vic57
Зарегистрирован: 2015-07-07
Сообщения: 913
Репутация: +  127  -
Профиль  

работа с xls файлом

doza_and
Вам надо полностью отказаться от xls и записывать данные в текстовый файл в режиме append
+1
еще лучше перегнать в sqlite3. добавляете когда вам угодно, в любой момент перегоняете в Excel

Офлайн

#5 Дек. 30, 2017 04:30:20

VadimK
Зарегистрирован: 2013-07-03
Сообщения: 199
Репутация: +  16  -
Профиль   Отправить e-mail  

работа с xls файлом

Как вариант посмотреть пакет openpyxl
Не уверен, что код рабочий, но суть должна быть ясна:

 wb = load_workbook(filename = 'empty_book.xlsx')
ws = wb.active
next = ws.max_row+1 # определили последнюю строку и прибавили 1
ws.cell(column=1, row=next, value="Добавляем строку")

Офлайн

Board footer

Модераторировать

Powered by DjangoBB

Lo-Fi Version