我有一个SQLite数据库,有两个表。一个用于客户端,另一个用于每个客户端的进程。我需要一个函数来使用filedDialog导出一个Pandas Dataframe 。如果我使用XslsWriter,Excel文件会自动保存在程序运行的地方,但我希望用户选择自己的位置。
我试过使用Xlsxwriter,它保存在程序运行的同一目录中:
def exporta_tabela(self):
self.conecta_db()
self.cursor.execute("""SELECT * FROM clientes""")
tabelaCli = self.cursor.fetchall()
tabelaCli = pd.DataFrame(tabelaCli, columns=['COD', 'CPF', 'Nome', 'Sobrenome', 'Telefone', 'Estado', 'Cidade','Bairro', 'Logradouro', 'Num.', 'Comp.', 'Area', 'RegistradoEm'])
writer = pd.ExcelWriter('clientes_processos.xlsx', engine='xlsxwriter')
self.cursor.execute("""SELECT * FROM processos """)
tabelaProc = self.cursor.fetchall()
tabelaProc = pd.DataFrame(tabelaProc, columns=['ID', 'Adv_Resp', 'Tipo', 'Processo', 'Status', 'Cliente_COD'])
tabelaCli.to_excel(writer, sheet_name='Clientes')
tabelaProc.to_excel(writer, sheet_name='Processos')
writer.save()
self.conn.commit()
self.desconecta_db()
=====================================================================
我也尝试过不使用xlsxWriter,但它只保存一个或另一个工作表,而我需要两个工作表:
def exporta_tabela(self):
self.conecta_db()
self.cursor.execute("""SELECT * FROM clientes""")
tabelaCli = self.cursor.fetchall()
tabelaCli = pd.DataFrame(tabelaCli, columns=['COD', 'CPF', 'Nome', 'Sobrenome', 'Telefone', 'Estado', 'Cidade','Bairro', 'Logradouro', 'Num.', 'Comp.', 'Area', 'RegistradoEm'])
self.cursor.execute("""SELECT * FROM processos """)
tabelaProc = self.cursor.fetchall()
tabelaProc = pd.DataFrame(tabelaProc, columns=['ID', 'Adv_Resp', 'Tipo', 'Processo', 'Status', 'Cliente_COD'])
with filedialog.asksaveasfile(mode='w', defaultextension='.xlsx') as file:
tabelaCli.to_excel(file.name, sheet_name='Clientes')
tabelaProc.to_excel(file.name, sheet_name='Processos')
self.conn.commit()
self.desconecta_db()
1条答案
按热度按时间jk9hmnmh1#
它的工作原理如下: