Найти - Пользователи
Полная версия: работа с xls файлом
Начало » Python для новичков » работа с xls файлом
1
AlCat
Добрый день.
Есть xls файл, в него надо добавить 5 000 строк, но не сразу, а по одной.
Вроде на ум приходит xlrd и xlwt. Но при добавлении каждой строки мне тогда придется открыть файл, считать содержимое в массив, закрыть файл, добавить элементы в массив создать пустой файл с тем же именем, записать массив в файл, закрыть файл. …..и так 5 000 раз.
Сразу все строки записывать нельзя, таковы особенности решаемой задачи.
Посоветуйте, с помощью чего можно это сделать.
JOHN_16
Не верится что это особенности задачи. Потому что это звучит настолько по тупому.
И вы что то тут лишнего наговорили. Какой открыть файл, какой массив?
Чего вы этим добиваетесь?
doza_and
AlCat
Сразу все строки записывать нельзя, таковы особенности решаемой задачи.
Посоветуйте, с помощью чего можно это сделать.
Это очень просто сделать. Вам надо полностью отказаться от xls и записывать данные в текстовый файл в режиме append (как собственно все нормальные логи и делаются). Если кому надо он без проблем загрузит в exel вашу таблицу.

Это думаю даст примерно следующий результат:
  • код записи данных на питоне намного проще
  • размер файла в 10 раз меньше
  • скорость записи в 100 раз выше
  • Количество программных средств которыми вы сможете смотреть и обрабатывать эти данные будет наверное на 3 порядка больше. те данные будут гораздо более доступными.
vic57
doza_and
Вам надо полностью отказаться от xls и записывать данные в текстовый файл в режиме append
+1
еще лучше перегнать в sqlite3. добавляете когда вам угодно, в любой момент перегоняете в Excel
VadimK
Как вариант посмотреть пакет openpyxl
Не уверен, что код рабочий, но суть должна быть ясна:

 wb = load_workbook(filename = 'empty_book.xlsx')
ws = wb.active
next = ws.max_row+1 # определили последнюю строку и прибавили 1
ws.cell(column=1, row=next, value="Добавляем строку")
This is a "lo-fi" version of our main content. To view the full version with more information, formatting and images, please click here.
Powered by DjangoBB