Очень просто мой код выглядит примерно так
wb = Workbook()
sheet = wb.active
df = load_data_from_sql(SQL_QUERY)
for row in dataframe_to_rows(df, index=False, header=True):
sheet.append(row)
результирующий df из моего SQL запроса выглядит примерно так
name, birthday, favorite_color
'john', '1993-08-02', 'red'
'chris', NaN, 'blue'
'steven', '1993-04-11', 'orange'
Что в итоге происходит при записи в рабочая книга состоит в том, что john
записывается, затем chris
записывается до столбца дня рождения - тогда обработка остальных строк полностью прекращается и Стивен никогда не записывается.
Временно, как я Я имел дело с этим, просто делал что-то вроде df.fillna('NaN')
. Это правильный способ справиться с этим? Или openpyxl должен правильно обрабатывать значения NaN при вызове dataframe для строк?