Python 如何将Panda DataFrame或QTableWidget转换为Pdf?

Python 如何将Panda DataFrame或QTableWidget转换为Pdf?,python,python-3.x,pandas,sqlite,pyqt5,Python,Python 3.x,Pandas,Sqlite,Pyqt5,如何将Panda DataFrame或QTableWidget转换为Pdf 我在QtableWidget PyQt5中列出了我的Sqlite3数据库产品,并在panda数据框中列出了它们。如何将其中一个转换为PDF 我想生成一个产品报告,这些方法中的任何一种都适合我。我尝试了很多在stack和google上看到的东西,但都没用 数据帧函数 def gerarRelatorio(self): self.banco = sqlite3.connect ( 'Vendas.db

如何将Panda DataFrame或QTableWidget转换为Pdf

我在QtableWidget PyQt5中列出了我的Sqlite3数据库产品,并在panda数据框中列出了它们。如何将其中一个转换为PDF

我想生成一个产品报告,这些方法中的任何一种都适合我。我尝试了很多在stack和google上看到的东西,但都没用

数据帧函数

    def gerarRelatorio(self):
        self.banco = sqlite3.connect ( 'Vendas.db' )
        self.cursor = banco.cursor ( )
        engine = create_engine('sqlite:///Vendas.db')
        df = pd.read_sql_table("Produtos", engine)
        print(df)
QtableWidget函数

    def LoadDatabase(self):
        self.banco = sqlite3.connect ( 'Vendas.db' )
        self.cursor = banco.cursor ( )
        query = "SELECT * FROM Produtos"
        result = self.banco.execute ( query )
        self.listaprodutos.setRowCount ( 0 )
        for row_number, row_data in enumerate ( result ):
            self.listaprodutos.insertRow ( row_number )
            for colum_number, data in enumerate ( row_data ):
                self.listaprodutos.setItem(row_number, colum_number, QtWidgets.QTableWidgetItem(str(data)))

可以使用以下方法将PDF格式转换为PDF格式:

from PyQt5 import QtGui, QtWidgets
from PyQt5.QtPrintSupport import QPrinter
from PyQt5.QtWidgets import QApplication
from PyQt5.QtGui import QTextDocument
import sys
import pandas as pd

df = pd.DataFrame({'test1':[1],'test2':[2]}) #the dataframe
html = df.to_html()

app = QApplication(sys.argv)
out = QTextDocument()
out.setHtml(html)
printer = QPrinter()
printer.setOutputFileName("test.pdf")
printer.setOutputFormat(QPrinter.PdfFormat)
printer.setPageSize(QPrinter.A4)
printer.setPageMargins(15, 15, 15, 15, QPrinter.Millimeter)
out.print_(printer)
当然,您必须使用pdf格式,使其看起来符合您的需要


我对PyQt5没有太多的经验,但是如果你已经在一个QtableWidget中存储了东西,那么你可能会跳过df/html部分,我试过了,但是没有用。流程结束,退出代码为-805306369 0xCFFFFFFFFFFFFFFFFFFFFF2以上代码示例对您有用吗?它能在我的机器上工作吗?你的df看起来像什么。。。我不知道如果唯一的变量是df,为什么它不起作用