自学内容网 自学内容网

使用Python和Pandas导出SQLite数据到Excel的小工具

在数据处理和导出的日常工作中,有时我们需要将SQLite数据库中的数据导出到Excel文件以便进一步分析或分享。本文将介绍如何使用Python的wxPython、Pandas和SQLite3库创建一个小工具,实现从SQLite数据库中提取数据并将其导出到Excel文件的功能。
C:\pythoncode\new\dbtoexcel.py

全部代码

import wx
import pandas as pd
import sqlite3

class ExportDataApp(wx.Frame):
    def __init__(self, parent, title):
        super(ExportDataApp, self).__init__(parent, title=title, size=(400, 200))

        panel = wx.Panel(self)
        vbox = wx.BoxSizer(wx.VERTICAL)

        self.file_path = wx.TextCtrl(panel, style=wx.TE_READONLY)
        vbox.Add(self.file_path, proportion=1, flag=wx.EXPAND | wx.ALL, border=10)

        select_button = wx.Button(panel, label="选择数据库文件")
        select_button.Bind(wx.EVT_BUTTON, self.on_select)
        vbox.Add(select_button, proportion=0, flag=wx.ALIGN_CENTER | wx.ALL, border=10)

        export_button = wx.Button(panel, label="导出数据到Excel")
        export_button.Bind(wx.EVT_BUTTON, self.on_export)
        vbox.Add(export_button, proportion=0, flag=wx.ALIGN_CENTER | wx.ALL, border=10)

        panel.SetSizer(vbox)
        self.Show()

    def on_select(self, event):
        with wx.FileDialog(self, "选择数据库文件", wildcard="SQLite databases (*.db)|*.db",
                           style=wx.FD_OPEN | wx.FD_FILE_MUST_EXIST) as fileDialog:
            if fileDialog.ShowModal() == wx.ID_CANCEL:
                return
            path = fileDialog.GetPath()
            self.file_path.SetValue(path)

    def on_export(self, event):
        db_path = self.file_path.GetValue()
        conn = sqlite3.connect(db_path)
        query = "SELECT * FROM file_info"
        data = pd.read_sql_query(query, conn)
        excel_path = db_path[:-3] + "xlsx"  # 使用相同路径,仅更改文件扩展名
        # data.to_excel(excel_path, index=False)
        data.to_excel(excel_path, index=False, engine='openpyxl')  # Or 'openpyxl'
        conn.close()

        wx.MessageBox("数据已成功导出到Excel文件!", "导出完成", wx.OK | wx.ICON_INFORMATION)

if __name__ == "__main__":
    app = wx.App()
    ExportDataApp(None, title="导出SQLite数据到Excel")
    app.MainLoop()

1. 准备工作

在开始之前,确保已经安装了wxPython、Pandas和SQLite3库。如果尚未安装,可以使用pip来安装:

pip install wxPython pandas

2. 代码解读

以上提供的Python代码展示了一个简单的应用程序,通过该应用程序可以选择SQLite数据库文件,从中提取数据并将其导出到Excel文件。让我们逐步解读这段代码:

  • wxPython GUI部分:创建了一个基本的GUI窗口,包含选择数据库文件和导出数据到Excel的按钮。

  • 选择数据库文件:通过on_select方法,用户可以选择要导出数据的SQLite数据库文件。

  • 导出数据到Excelon_export方法连接到选定的数据库,执行查询并使用Pandas将查询结果导出到Excel文件。

3. 运行应用程序

在代码中,当你运行这个应用程序时,会弹出一个GUI窗口。你可以点击“选择数据库文件”按钮选择SQLite数据库文件,然后点击“导出数据到Excel”按钮将数据导出到Excel文件中。

4. 定制和扩展

你可以根据自己的需求对这个应用程序进行定制和扩展,比如:

  • 添加更多的数据处理功能或筛选选项。
  • 改变导出文件的格式或路径。
  • 界面美化和交互体验的提升。

结果如下

在这里插入图片描述
C:\pythoncode\new\file_info.db

结语

通过这个简单的小工具,你可以方便地从SQLite数据库中提取数据并导出到Excel,为你的数据处理工作提供了一种便捷的解决方案。希望这篇文章能够帮助你更好地理解如何利用Python和相关库来处理和导出数据。


原文地址:https://blog.csdn.net/winniezhang/article/details/140625806

免责声明:本站文章内容转载自网络资源,如本站内容侵犯了原著者的合法权益,可联系本站删除。更多内容请关注自学内容网(zxcms.com)!