Python读写EXCEL文件常用方法

python读写excel的方式有很多,不同的模块在读写的讲法上稍有区别,这里我主要介绍几个常用的方式。

  • 用xlrd和xlwt进行excel读写;
  • 用openpyxl进行excel读写;
  • 用pandas进行excel读写;

一、数据准备

为了方便演示,我这里新建了一个data.xls和data.xlsx文件,第一个工作表sheet1区域“A1:E5”的内容如下,用于测试读写excel的代码:

二、0xlrd和xlwt

xlrd是一个库,用于从Excel文件中以.xls格式读取数据和格式化信息
xlwt是一个库,用于将数据和格式化信息写入较旧的Excel文件(例如:.xls)。

1示例
pip install xlrd
pip install xlwt

我们开始来读取文件的内容

接下来我们来进行写入,写入可以进行的操作太多了,我这里只列举了常用的的操作。

需要注意的是最好在当前路径下通过命令行执行,否则无法生成文件。

三、0openpyxl

openpyxl是一个Python库,用于读取/写入Excel 2010 xlsx/xlsm/xltx/xltm文件。
安装包

pip install openpyx

安装完成可以开始进行读取数据

现在我们来开始写入数据

import openpyxl
import datetime
from openpyxl.styles import Font, colors, Alignment
#实例化
workbook = openpyxl.Workbook()
# 激活 worksheet
sheet=workbook.active
#写入数据
sheet['A1']='python'
sheet['B1']='javascript'
#写入时间
sheet['A2'] = datetime.datetime.now().strftime("%Y-%m-%d")
# 第2行行高
sheet.row_dimensions[2].height = 40
# B列列宽
sheet.column_dimensions['B'].width = 30
# 设置A1中的数据垂直居中和水平居中
sheet['A1'].alignment = Alignment(horizontal='center', vertical='center')
# 下面的代码指定了等线24号,加粗斜体,字体颜色黄色。直接使用cell的font属性,将Font对象赋值给它。
bold_itatic_24_font = Font(name='等线', size=24, italic=True, color='00FFBB00', bold=True)
sheet['B1'].font = bold_itatic_24_font
# 合并单元格, 往左上角写入数据即可
sheet.merge_cells('A2:B2') # 合并一行中的几个单元格
# 拆分单元格
# sheet.unmerge_cells('A2:B2')
#保存
workbook.save('new.xlsx')

四、0pandas

pandas支持xls, xlsx, xlsm, xlsb, odf, ods和odt文件扩展名从本地文件系统或URL读取。支持读取单个工作表或工作表列表的选项。
首先依然是安装包

pip install pandas

语法:

pd.read_excel(io, sheet_name=0, header=0, names=None, index_col=None, usecols=None, squeeze=False,dtype=None, engine=None, converters=None, true_values=None, false_values=None, skiprows=None, nrows=None, na_values=None, parse_dates=False, date_parser=None, thousands=None, comment=None, skipfooter=0, convert_float=True, **kwds)

io,Excel的存储路径
sheet_name,要读取的工作表名称
header, 用哪一行作列名
names, 自定义最终的列名
index_col, 用作索引的列
usecols,需要读取哪些列
squeeze,当数据仅包含一列
converters ,强制规定列数据类型
skiprows,跳过特定行
nrows ,需要读取的行数
skipfooter , 跳过末尾n行
import pandas as pd
import os
file_path = os.path.dirname(os.path.abspath(__file__))
base_path = os.path.join(file_path, 'data.xlsx')
df = pd.read_excel(base_path)
print(df)

写入数据

语法:
DataFrame.to_excel(excel_writer, sheet_name='Sheet1', na_rep='', float_format=None, columns=None, header=True, index=True, index_label=None, startrow=0, startcol=0, engine=None, merge_cells=True, encoding=None, inf_rep='inf', verbose=True, freeze_panes=None)
参数说明:

excel_writer:文件路径或现有的ExcelWriter
sheet_name:将包含数据文件的工作表的名称
na_rep:缺失的数据表示
float_format:格式化浮点数的字符串。例如float_format = " %。2f"格式为0.1234到0.12。
columns:列
header:写出列名。如果给定一个字符串列表,则假定它是列名的别名。
index:写入行名称(索引)
index_label:如果需要,索引列的列标签。如果未指定,并且标头和索引为真,则使用索引名。如果DataFrame使用多索引,应该给出一个序列。
startrow:左上角的单元格行转储数据帧。
startcol:左上角单元格列转储数据帧。
engine:编写要使用的引擎“ openpyxl”或“ xlsxwriter”。 您还可以通过选项io.excel.xlsx.writer,io.excel.xls.writer和io.excel.xlsm.writer进行设置。
merge_cells:将多索引和层次结构行写入合并单元格。
encoding:对生成的excel文件进行编码。仅对xlwt有必要,其他编写器本身支持unicode。
inf_rep:表示无穷大。
verbose:在错误日志中显示更多信息。
freeze_panes:指定要冻结的最底部的行和最右边的列
from pandas import DataFrame
data = {'name': ['张三', '李四', '王五'],'age': [11, 12, 13],'sex': ['男', '女', '男']}
df = DataFrame(data)
df.to_excel('file.xlsx')

最后感谢每一个认真阅读我文章的人,礼尚往来总是要有的,这些资料,对于【软件测试】的朋友来说应该是最全面最完整的备战仓库,虽然不是什么很值钱的东西,如果你用得到的话可以直接拿走:

这些资料,对于【软件测试】的朋友来说应该是最全面最完整的备战仓库,这个仓库也陪伴上万个测试工程师们走过最艰难的路程,希望也能帮助到你! 

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

如若内容造成侵权/违法违规/事实不符,请联系编程知识网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

【英语趣味游戏】填字谜(Crossword)第2天

谜题出处 柯林斯字谜大全(6),Collins——Big Book of Crosswords (Book 6) Puzzle Number: 115 本期单词 横向 1、Fetch (8) 拿,取,8个字母 答案:Retrieve,取到,拿回 5、Common s…

视频转GIF动图实践, 支持长视频转GIF

背景 找了很多GIF动图制作的工具,比如将视频转成GIF, 或者将一系列图片转成GIF, 增加背景文案等等功能。很多收费或者用的一些三方库有点点卡顿,或者需要安装一个软件,所以就自己做一款纯前端页面级别的 视频转 GIF 动图工具。 最开始找到一…

顶象点选验证码

要放假了好颓废。。。。 没啥事儿干,就把之前剩余的顶象点选系列的验证码类型看了下。 之前分享了一篇关于这个顶象的滑块的 DX算法还原_dx算法还原_逆向学习之旅-CSDN博客,感兴趣可以去看看。 咱们以文字点选为例: def get_image_arry(s…

堆宝塔

L2-1 堆宝塔 分数 25 作者 陈越 单位 浙江大学 堆宝塔游戏是让小朋友根据抓到的彩虹圈的直径大小,按照从大到小的顺序堆起宝塔。但彩虹圈不一定是按照直径的大小顺序抓到的。聪明…

浏览器内存泄漏排查指南

1、setTimeout执行原理 使用setInterval/setTimeOut遇到的坑 - 掘金 2、Chrome自带的Performance工具 当我们怀疑页面发生了内存泄漏的时候,可以先用Performance录制一段时间内页面的内存变化。 点击开始录制执行可能引起内存泄漏的操作点击停止录制 如果录制结束…

三、防御保护---防火墙安全策略篇

三、防御保护---防火墙安全策略篇 一、什么是安全策略二、安全策略的组成1.匹配条件2.动作3.策略标识 三、防火墙的状态检测和会话表1.会话表2.状态检测技术 四、ASPF--隐形通道五、用户认证1.用户认证的分类2.认证方式3.认证策略4.认证域 一、什么是安全策略 传统的包过滤防火…

【代码随想录】刷题笔记Day56

前言 26回了老家参加二姨的婚礼,还逛了几圈亲戚,回来就接家教的活,想到还要刷题开组会,回家注定是没法怎么休息啦,可恶 42. 接雨水 - 力扣(LeetCode) 暴力解法(双指针优化&#xf…

自然语言nlp学习四

5-5 BMTrain--ZeRO_哔哩哔哩_bilibili 5-6 BMTrain--Pipeline Parallel (流水线并行)_哔哩哔哩_bilibili 5-12 BMCook--背景介绍_哔哩哔哩_bilibili

基于JAVA的河南软件客服系统 开源项目

目录 一、摘要1.1 项目介绍1.2 项目录屏 二、功能模块2.1 系统管理人员2.2 业务操作人员 三、系统展示四、核心代码4.1 查询客户4.2 新增客户跟进情况4.3 查询客户历史4.4 新增服务派单4.5 新增客户服务费 五、免责说明 一、摘要 1.1 项目介绍 基于JAVAVueSpringBootMySQL的河…

uniapp多格式文件选择(APP,H5)

uniapp多格式文件选择(APP,H5) 背景实现代码实现运行结果注意事项 尾巴 背景 从手机选择文件进行上传是移动端很常见的需求,在原生开发时由于平台专一性很容易实现。但是用uniapp开发官方提供的API在APP平台只能选择图片和视频&a…

【网站项目】基于SSM的200日用品网站

🙊作者简介:拥有多年开发工作经验,分享技术代码帮助学生学习,独立完成自己的项目或者毕业设计。 代码可以私聊博主获取。🌹赠送计算机毕业设计600个选题excel文件,帮助大学选题。赠送开题报告模板&#xff…

2023量子科技十大用例 | 光子盒年度系列

随着量子科技的不断突破,量子计算、量子通信、量子测量等应用场景逐渐向纵深拓展,量子产业呈现出较好的发展势头。 量子计算的发展比以往任何时候都更加迅速,这提醒我们,这项看似‘高冷’的前沿科技,已悄然应用于不少领…