Python操作Excel

1. Python 操作 Excel 的函数库

我主要尝试了 3 种读写 Excel 的方法:

1〉 xlrd, xlwt, xlutils: 这三个库的好处是不需要其它支持,在任何操作系统上都可以使用.xlrd 可以读取 。xls, .xlsx 文件,非常好用;但因为 xlwt 不能直接修改 Excel 文档,必须得复制一份然后另存为其它文件,而且据说写复杂格式的 Excel 文件会出现问题,所以我没有选它来写 Excel 文件。

2> openpyxl: 这个库也是不需要其它支持的,而且据说对 Office 2007 格式支持得更好。遗憾地是,我经过测试,发现它加载 Excel 文件的效率比 xlrd 慢 3 倍以上,内存使用在 10 倍以上,于是就放弃了。

3〉 win32com: Python Win32 扩展,这个库需要运行环境为 Windows+Office 对应版本。由于 Python Win32 扩展只是把 COM 接口包装了一下,可以视为与 VBA 完全相同,不会有读写格式上的问题。尝试了一下用 win32com 读取 Excel 文件,效率还是比 xlrd 慢一些。

由于读取效率上 xlrd > win32com 〉 openpyxl,所以我自然选择了 xlrd 用来读取统计报表;而最终输出的报表格式较复杂,所以选择了 win32com 直接操作 Excel 文件。

2. Python 里的关系型数据库

SQLite 是一个非常轻量级的关系型数据库,很多语言和平台都内置 SQLite 支持,也是 iOS 和 Android 上的默认数据库。Python 的标准库里也包含了 sqlite3 库,用起来非常方便.

3. 用 xlrd 读取 Excel 并插入数据库样例

如果数据量不大,直接用 Python 内部数据结构如 dict, list 就够了。但如果读取的几张表数据量都较大,增加个将数据插入数据库的预处理过程就有很大好处。一是避免每次调试都要进行耗时较长的 Excel 文件载入过程;二是能充分利用数据库的索引和 SQL 语句强大功能进行快速数据分析。

#!/usr/bin/python
# —*— coding: gbk -*-

import xlrd
import sqlite3

# 打开数据库文件
device_city_db = sqlite3.connect('device_city。db’)
cursor = device_city_db。cursor()

# 建表
cursor。execute(’DROP TABLE IF EXISTS device_city’)
cursor.execute(’CREATE TABLE device_city (device_id char(16) PRIMARY KEY, city varchar(16))')
 
# 打开 device 相关输入 Excel 文件
device_workbook = xlrd。open_workbook(’输入.xlsx')
device_sheet = device_workbook.sheet_by_name(’设备表')

# 逐行读取 device—城市 映射文件,并将指定的列插入数据库
for row in range(1, device_sheet.nrows):
   device_id = device_sheet。cell(row, 6)。value
   if len(device_id) 〉 16:
       device_id = device_id[0:16]

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.xdnf.cn/news/8745.html

如若内容造成侵权/违法违规/事实不符,请联系一条长河网进行投诉反馈,一经查实,立即删除!

相关文章

光缆车间三维可视化系统

通过图扑可视化平台整合实时生产数据与流程监控,并呈现光缆制造流程,提升生产透明度与效率。支持异常检测、资源管理与智能决策,助力车间运营的智能化与自动化升级。

强化学习这么做绝绝子!最新idea登顶Science!

强化学习(RL)全新里程碑!RL之父Richard Stutton团队,提出一种奖励聚中思想,能大幅增强所有RL算法!也即:通过从观察到的奖励中减去平均奖励,来提高连续强化学习问题中折扣方法的性能&…

[含文档+PPT+源码等]精品基于springboot实现的原生Andriod广告播放系统

基于Spring Boot实现的原生Android广告播放系统背景,主要可以从以下几个方面进行阐述: 一、市场需求与背景 移动互联网的快速发展: 随着移动互联网技术的不断进步,智能手机已成为人们日常生活中不可或缺的一部分。人们越来越多地…

2023上半年下午3,4,5

文中的英文很可能是类名。没有英文的段落可以不看 如图,C1和C5应该是父类,有234和678等多个箭头指向他们 所以C2,C3,C4应该是C1的子类,C5同理 聚合表示部分可以脱离整体而存在,整体消失部分也能存在 组合则部分不能脱离整体&…

【C/C++】字符/字符串函数(0)(补充)——由ctype.h提供

零.导言 除了字符分类函数,字符转换函数也是一类字符/字符串函数。 C语言提供了两种字符转换函数,分别是 toupper , tolower。 一.什么是字符转换函数? 顾名思义,即转换字符的函数,如大写字母转小写字母&am…

华为eNSP实验:QINQ技术

QinQ技术是一种扩展VLAN空间的技术,通过在802.1Q标签报文的基础上再增加一层802.1Q的Tag来达到扩展VLAN空间的功能。 QinQ技术允许私网VLAN透传公网,使得在骨干网中传递的报文有两层802.1Q Tag(一层公网Tag,一层私网Tag&#xff…

YOLOv5之Common.py

文章目录 1.学习目的2.网络模型![在这里插入图片描述](https://i-blog.csdnimg.cn/direct/67b8dbd00c9b4034ba370fc8b8a6031a.jpeg)3.common.py分析 1.学习目的 YOLOv5中最关键一个模型类 2.网络模型 3.common.py分析 # Ultralytics YOLOv5 🚀, AGPL-3.0 license…

5G时代,国产化融合通信行业的新机遇

在5G时代,国产化融合通信行业正在经历重要的转型与崛起,国产化融合通信行业正肩负着重要的社会责任,成为了推动我们社会发展的重要力量。5G技术的高速发展以及大规模的商业应用,使国产化融合通信行业迎来了前所未有的发展机遇。 5…

Spring WebFlux 核心原理(2-2)

1、Project Reactor 核心 1.1、新建项目 新建maven项目&#xff0c;将Project Reactor作为依赖项添加到应用程序中&#xff1a; <?xml version"1.0" encoding"UTF-8"?> <project xmlns"http://maven.apache.org/POM/4.0.0" xmlns:x…

sublime Text的提取查找结果功能

notePad中是 sublime Text是快捷键 ctrlshiftF 点击find就行了&#xff0c;会新建一个文件里面是提取的内容 勾选展示上下文的情况

基于Jeecgboot3.6.3vue3的flowable流程online表单的审批使用介绍

更多技术支持与服务请加入我的知识星球或加我微信&#xff0c;名称:亿事达nbcio技术交流社区https://t.zsxq.com/iPi8F 今天介绍一下基于jeecgboot3.6.3的flowable流程使用online表单进行审批的情况 1、首先建立一个online应用类型的流程&#xff0c;如下&#xff1a; 2、进行…

flink 内存配置(二):设置TaskManager内存

flink 内存配置&#xff08;一&#xff09;&#xff1a;设置Flink进程内存 flink 内存配置&#xff08;二&#xff09;&#xff1a;设置TaskManager内存 flink 内存配置&#xff08;三&#xff09;&#xff1a;设置JobManager内存 flink 内存配置&#xff08;四&#xff09;…

基于SpringBoot沉浸式戏曲文化体验系统【附源码】

基于SpringBoot沉浸式戏曲文化体验系统 效果如下&#xff1a; 系统主页面 系统登陆页面 用户管理页面 戏曲剧目管理页面 戏曲倾听页面 活动信息管理页面 个人中心页面 研究背景 随着互联网技术的飞速发展&#xff0c;传统文化传播方式正面临着前所未有的变革。戏曲作为我国传…

P3-1.【结构化程序设计】第一节——知识要点:算法、顺序结构程序设计、if语句的语法结构及各种用法

讲解视频&#xff1a; P3-1.【结构化程序设计】第一节——知识要点&#xff1a;算法、顺序结构程序设计、if语句的语法结构及各种用法 知识要点&#xff1a;算法、顺序结构程序设计、if语句的语法结构及各种用法 一、算法、顺序结构程序设计任务分析 知识要点&#xff1a;算法…

RAG三件套运行的新选择 - GPUStack

GPUStack 是一个开源的大模型即服务平台&#xff0c;可以高效整合并利用 Nvidia、Apple Metal、华为昇腾和摩尔线程等各种异构的 GPU/NPU 资源&#xff0c;提供本地私有部署大模型解决方案。 GPUStack 可以支持 RAG 系统中所需要的三种关键模型&#xff1a;Chat 对话模型&…

SSM物联网养殖管理系统-计算机毕业设计源码03998

目录 1 绪论 1.1 研究背景和意义 1.2国内外研究现状 1.3论文结构与章节安排 2 系统分析 2.1 可行性分析 2.1.1 技术可行性分析 2.1.2经济可行性分析 2.1.3操作可行性分析 2.2 系统功能分析 2.2.1 功能性分析 2.2.2 非功能性分析 2.3 系统用例分析 2.4 系统流程分析…

使用Python进行健康监测和分析的案例研究

健康监测和分析是指系统地使用健康数据来跟踪和评估个人或人群在一段时间内的健康状况。它包含一系列活动&#xff0c;从实时生理数据收集&#xff08;如心率&#xff0c;血压和体温&#xff09;到分析更复杂的健康记录&#xff08;包括患者病史&#xff0c;生活方式选择和遗传…

RHCE 第四次作业

一.搭建dns服务器能够对自定义的正向或者反向域完成数据解析查询。 1.配置环境 [rootlocalhost ~]# yum install bind [rootlocalhost ~]#systemctl stop firewalld [rootlocalhost ~]#setenforce 0 2.配置DNS主服务器 [rootlocalhost ~]# vim /etc/named.conf options { …

打字机效果显示

文章目录 打字机效果显示一、效果图二、视频效果三、代码 打字机效果显示 一、效果图 二、视频效果 B站-打字机效果图 打字机效果 打字机效果 三、代码 框架&#xff1a; <div class"t_title"><span>我的能力</span> <!-- <span>使…

PyQt5实战——翻译的实现,成功爬取微软翻译(可长期使用)经验总结(九)

个人博客&#xff1a;苏三有春的博客 系类往期文章&#xff1a; PyQt5实战——多脚本集合包&#xff0c;前言与环境配置&#xff08;一&#xff09; PyQt5实战——多脚本集合包&#xff0c;UI以及工程布局&#xff08;二&#xff09; PyQt5实战——多脚本集合包&#xff0c;程序…