in aai/doc.py [0:0]
def write_data(name, transpose, data):
file_path = _config.filepath
file_name = name + _config.file_name
# log.info('Started: writing document {} on sheet {}'.format(file_name, sheet_name))
# Create a Pandas Excel writer using XlsxWriter as the engine.
writer = pd.ExcelWriter("{}{}".format(file_path, file_name), engine="xlsxwriter")
# transpose = _config.settings.config['excel']['transpose'].get()
for d in data:
df = pd.DataFrame(d["Result"])
# fix: Excel does not support datetimes with timezones. Please ensure that datetimes are timezone unaware before writing to Excel.
for col in df.select_dtypes(["datetimetz"]).columns:
df[col] = df[col].dt.tz_convert(None)
sheet_name = d["Name"]
if transpose:
df.transpose().to_excel(writer, sheet_name=sheet_name)
worksheet = writer.sheets[sheet_name]
# Adjust at least the first column width
worksheet.set_column("A:A", 60)
else:
df.to_excel(writer, sheet_name=sheet_name)
# Adjust all columns widths
for column in df:
column_length = max(df[column].astype(str).map(len).max(), len(column))
col_idx = df.columns.get_loc(column)
writer.sheets[sheet_name].set_column(col_idx, col_idx, column_length)
# Close the Pandas Excel writer and output the Excel file.
writer.save()
print("Report generated successfully at: {}{}".format(file_path, file_name))