AlCat
Дек. 27, 2017 13:34:40
Добрый день.
Есть xls файл, в него надо добавить 5 000 строк, но не сразу, а по одной.
Вроде на ум приходит xlrd и xlwt. Но при добавлении каждой строки мне тогда придется открыть файл, считать содержимое в массив, закрыть файл, добавить элементы в массив создать пустой файл с тем же именем, записать массив в файл, закрыть файл. …..и так 5 000 раз.
Сразу все строки записывать нельзя, таковы особенности решаемой задачи.
Посоветуйте, с помощью чего можно это сделать.
JOHN_16
Дек. 27, 2017 15:53:19
Не верится что это особенности задачи. Потому что это звучит настолько по тупому.
И вы что то тут лишнего наговорили. Какой открыть файл, какой массив?
Чего вы этим добиваетесь?
doza_and
Дек. 27, 2017 22:48:33
AlCat
Сразу все строки записывать нельзя, таковы особенности решаемой задачи.
Посоветуйте, с помощью чего можно это сделать.
Это очень просто сделать. Вам надо полностью отказаться от xls и записывать данные в текстовый файл в режиме append (как собственно все нормальные логи и делаются). Если кому надо он без проблем загрузит в exel вашу таблицу.
Это думаю даст примерно следующий результат:
- код записи данных на питоне намного проще
- размер файла в 10 раз меньше
- скорость записи в 100 раз выше
- Количество программных средств которыми вы сможете смотреть и обрабатывать эти данные будет наверное на 3 порядка больше. те данные будут гораздо более доступными.
vic57
Дек. 28, 2017 09:19:28
doza_and
Вам надо полностью отказаться от xls и записывать данные в текстовый файл в режиме append
+1
еще лучше перегнать в sqlite3. добавляете когда вам угодно, в любой момент перегоняете в Excel
VadimK
Дек. 30, 2017 04:30:20
Как вариант посмотреть пакет openpyxl
Не уверен, что код рабочий, но суть должна быть ясна:
wb = load_workbook(filename = 'empty_book.xlsx')
ws = wb.active
next = ws.max_row+1 # определили последнюю строку и прибавили 1
ws.cell(column=1, row=next, value="Добавляем строку")