将Xlsxwriter工作表转换为Pandas Dataframe

我有一个从Excel表格中读取的DataFrame,其中我已经使用Xlsxwriter创build了一些新的列。 现在我需要使用我在Xlsxwriter中创build的新列(这是一个date列btw)过滤这个新的数据集。 有没有办法再次把这个新的工作表变成一个数据框,所以我可以过滤新的列? 我会尽力提供任何有用的代码:

export = "files/extract.xlsx" future_days = 12 writer = pd.ExcelWriter('files/new_report-%s.xlsx' % (date.today()), engine ='xlsxwriter') workbook = writer.book df = pd.read_excel(export) df.to_excel(writer, 'Full Log', index=False) log_sheet = writer.sheets['Full Log'] new_headers = ('todays date', 'Milestone Date') log_sheet.write_row('CW1', new_headers) # This for loop just writes in the formula for my new columns on every line for row_num in range(2, len(df.index)+2): log_sheet.write_formula('CX' + str(row_num),'=IF(AND($BS{0}>1/1/1990,$BT{0}<>"Yes"),IF($BS{0}<=$CW{0},$BS{0},"Date In Future"),IF(AND($BW{0}>1/1/1990,$BX{0}<>"Yes"),IF($BW{0}<=CW{0},$BW{0},"Date In Future"),IF(AND($CA{0}>1/1/1990,$CCW{0}<>"Yes"),IF($CA{0}<=CW{0},$CA{0},"Date In Future"),IF(AND($CE{0}>1/1/1990,$CF{0}<>"Yes"),IF($CE{0}<CW{0},$CE{0},"Date In Future"),IF(AND($CI{0}>1/1/1990,$CJ{0}<>"Yes"),IF($CI{0}<CW{0},$CI{0},"Date In Future"),IF(AND($CM{0}>1/1/1990,$CN{0}<>"Yes"),IF($CM{0}<CW{0},$CM{0},"Date In Future"),"No Date"))))))'.format(row_num)) log_sheet.write_formula('CW' + str(row_num), '=TODAY()+' + str(future_days)) log_sheet.write_formula('CY' + str(row_num), '=IF(AND(AI{0}>DATEVALUE("1/1/1900"), AH{0}>DATEVALUE("1/1/1900"),A{0}<>"Test",A{0}<>"Dummy Test"),NETWORKDAYS(AH{0},AI{0}-1),"Test")'.format(row_num)) 

所以现在完成了所有的工作,我需要过滤这个“完整的日志”表,所以它只获取新里程碑date列中的值通过今天的date的数据。 我已经使用Xlsxwriters自动filter,但我不喜欢它,因为它实际上不应用filter。 只是设置它。

您可以调用写入器上的保存function,然后将文件加载到新的dataframe中

 writer.save() df2 = pd.read_excel('Full Log')