办公问答网

 找回密码
 立即注册
搜索
热搜: 活动 交友 discuz
查看: 89|回复: 2

Python + SQLite +Excel= Access?

[复制链接]

4

主题

10

帖子

18

积分

新手上路

Rank: 1

积分
18
发表于 2023-1-9 12:29:36 | 显示全部楼层 |阅读模式
先解释下为什么取这个题目。
公司系统没有升级到Win10之前,对于一些中型的数据分析, 我常常会用Access. 从Excel里将数据导入,然后根据需求写一系列的SQL Script然后把结果导出,做成报告。
可是现在公司系统升到了Win10, 不再安装Access. 只能用Anaconda 和Excel.  所以之前在Access 完成的任务,现在要用Python+ SQLite + Excel 完成。
文章的目的不在于比较谁好谁坏, 而在于给出同样任务不同的解决方法。
数据导入

Access的数据导入很简单,就算不会代码的人,也可以从菜单External Data里导入各种数据,包括文件,数据库,线上数据等等。Access的好处是,代码可以写得很少,功能都封装好了,直接在可视化界面操作就行。当然,要导入大量文件的时候,用VBA代码比较方便。



同样的任务,用Python需要写代码完成。 以csv 文件为例, 需要先用pandas读取csv里面的内容,然后建立sqlite (Python的内置数据库)的链接,最后用pandas dataframe 的to_sql 方法将csv里的内容导入到数据库。


编写和执行SQL代码

用Access的话,在Create/Queries 下面就可以创建SQL 代码,而且会有一个可视化的界面让你选择不同表里面的字段。它的SQL 编辑器一次只能执行一段SQL 代码。对于比较复杂的查询,一般是拆分为小部分然后组建起来。


在Python里面, 可以用pandas的read_sql_query 来读取SQLite里面的内容。SQLite 的语法规则需要花点时间熟悉一下,和Access SQL 和SQL Server SQL 还是有点不大一样。
代码是在Jupyter Notebook里写的,好处是,可以看到多个SQL的执行结果,比较方便。




导出结果到Excel

Access的数据导出和导入一样简单,都是可以在可视化界面进行操作的。在External Data /Export 里就可以各种途径导出数据,导出到Excel 是其中之一。



Python 里要导出数据,需要用到pandas 里面的to_excel 函数, 如果要高级的导出,可以用openpyxl, xlswriter 模块里面的功能。



结论:

Access的数据导入导出功能相对简单,即使不写代码也可以完成任务。用Python + SQLite 需要写较多的代码,当然,同样操作多了,可以把常用代码封装起来,减少重复工作。不过Python+SQLite也有很多好处,可以用到很多数据分析模块的高级功能,更适合深度挖掘数据。
回复

使用道具 举报

1

主题

9

帖子

9

积分

新手上路

Rank: 1

积分
9
发表于 2023-1-9 12:30:07 | 显示全部楼层
为啥有excel没有access?access是office送的啊
回复

使用道具 举报

1

主题

2

帖子

3

积分

新手上路

Rank: 1

积分
3
发表于 2023-1-9 12:30:26 | 显示全部楼层
access 也是卖的,office家庭学生版里没有access
回复

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

Archiver|手机版|小黑屋|办公问答网

GMT+8, 2025-4-4 02:01 , Processed in 0.104140 second(s), 23 queries .

Powered by Discuz! X3.4

© 2001-2013 Comsenz Inc. Templated By 【未来科技 www.veikei.com】设计

快速回复 返回顶部 返回列表