Сохранение данных в файл Excel, но слишком много записей

#python #excel

#python #excel

Вопрос:

Я использую этот скрипт для получения CSV-файла с локального микроконтроллера и сохраняю информацию в файле Excel. Проблема, с которой я столкнулся, заключается в том, что я достиг предела количества записей, которые могут быть в файле Excel, поэтому мне нужно найти способ адаптировать сценарий, чтобы сказать что-то вроде

 if excel_file == full:
    open new excel sheet and print data there
  

У кого-нибудь есть идеи?

Вот точная ошибка на случай, если кому-то интересно:

 ValueError('This sheet is too large! Your sheet size is: 1744517, 27 Max sheet size is: 1048576, 16384')
  

Комментарии:

1. Является ли предел фиксированным количеством строк / столбцов? Или это зависит от объема данных в каждой ячейке?

2. Я считаю, что это фиксированное количество строк. Что-то вроде 1,5 миллиона. Я добавил ошибку, которую он выдает.

3. Моей первой рекомендацией было бы не использовать Excel 🙂 но если это то, что вам нужно, все ли данные записываются один раз или файл открывается и закрывается? Если он записывается сразу, просто подсчитайте количество строк, и когда вы дойдете до максимального значения, запишите файл Excel, начните новый.

4. Жаль, что я не могу использовать Excel, но, к сожалению, людям в офисе это действительно нравится. Все это записывается одновременно, поэтому я могу рассмотреть возможность подсчета записей, а затем открыть новый лист при достижении предела. Спасибо за идею!

5. Следите за количеством строк, которые вы написали, и остановитесь, как только дойдете до 1048576.

Ответ №1:

Решается путем помещения всего в фрейм данных pandas и использования

 df_1 = df.iloc[:1000000,:]
df_2 = df.iloc[1000001:,:]
  

который разбивает df после миллиона записей, а затем добавляет их на разные листы одного и того же файла Excel.