Python操作Excel表格

转载请注明出处❤️

作者:测试蔡坨坨

原文链接:caituotuo.top/b0277e1c.html

你好,我是测试蔡坨坨。

上期我们分享了一个Python编写的小工具——「Python 实现 XMind 测试用例快速转 Excel 用例

其中用到了Python操作Excel,有小伙伴可能对这部分不太了解,所以本篇将介绍Python是如何将数据写入Excel表格。

安装

xlwt是Python的第三方模块,需要先下载安装才能使用,这里我们使用pip命令下载

pip3 install xlwt

使用

  1. 导入Excel表格文件处理函数
import xlrd
import xlwt
from faker import Faker
  1. 创建Excel表格类型文件
实例化Workbook对象
第一个参数:encoding表示编码
第二个参数:style_compression设置是否压缩,0表示不压缩
work_book = xlwt.Workbook(encoding="utf-8", style_compression=0)
  1. 在Excel表格类型文件中建立一张表sheet表单
第一个参数:sheetname,表示sheet名
第二个参数:cell_overwrite_ok用于确认同一cell单元是否可以重设值,True表示可以重设
sheet = work_book.add_sheet(sheetname="用户信息表", cell_overwrite_ok=True)
  1. 自定义列名
用一个元组col自定义列的数量以及属性
col = ("姓名", "电话", "地址")
  1. 将列属性元组col写进sheet表单中
使用for循环将col元组的元组值写到sheet表单中
第一个参数是行,第二个参数是列,第三个参数是值
for i in range(0, 3):
    sheet.write(0, i, col[i])
  1. 创建数据并将数据写入表格
使用Faker模块生成10组数据
faker = Faker("zh_CN")
data_list = []
for i in range(0, 10):
    data = [faker.name(), faker.phone_number(), faker.address()]
    data_list.append(data)
print(data_list)  # [['杨雪梅', '13596272521', '湖南省宁德市高明杨街Z座 257668'], ......]

将数据写入Excel文件
先用第一个for循环进行每行写入
再用第二个for循环把每一行当中的列值写进入
for i in range(0, 10):
    data = data_list[i]
    for j in range(0, 3):
        sheet.write(i + 1, j, data[j])
  1. 保存Excel文件,调用save()方法
定义一个文件路径save_path,例如当前目录下./ 文件名为 userinfo.xls
save_path = "./userinfo.xls"
work_book.save(save_path)
  1. 读取Excel文件(ps:读取前确保文件非打开状态)
得到文件
file_name = xlrd.open_workbook("./userinfo.xls")
得到sheet页
sheet = file_name.sheets()[0]
获取总列数
total_rows = sheet.nrows
获取总行数
total_cols = sheet.ncols
print(total_rows, total_cols)  # 11 3
for i in range(1, total_rows):
    for j in range(0, total_cols):
        info = sheet.row_values(i)[j]
        print(info)

运行结果:借助Faker模块生成随机的个人信息,并将其写入Excel表格

Python操作Excel表格

完整代码

源码获取请关注公众号 测试蔡坨坨,回复关键词 源码

author: 测试蔡坨坨
datetime: 2022/7/2 20:47
function: Python操作Excel表格

xlwt是Python的第三方模块,需要先下载安装才能使用,这里我们使用pip命令下载
pip3 install xlwt

1.导入Excel表格文件处理函数
import xlrd
import xlwt
from faker import Faker

2.创建Excel表格类型文件
实例化Workbook对象
第一个参数:encoding表示编码
第二个参数:style_compression设置是否压缩,0表示不压缩
work_book = xlwt.Workbook(encoding="utf-8", style_compression=0)

3.在Excel表格类型文件中建立一张表sheet表单
第一个参数:sheetname,表示sheet名
第二个参数:cell_overwrite_ok用于确认同一cell单元是否可以重设值,True表示可以重设
sheet = work_book.add_sheet(sheetname="用户信息表", cell_overwrite_ok=True)

4.自定义列名
用一个元组col自定义列的数量以及属性
col = ("姓名", "电话", "地址")

5.将列属性元组col写进sheet表单中
使用for循环将col元组的元组值写到sheet表单中
第一个参数是行,第二个参数是列,第三个参数是值
for i in range(0, 3):
    sheet.write(0, i, col[i])

6.创建数据并将数据写入表格
使用Faker模块生成10组数据
faker = Faker("zh_CN")
data_list = []
for i in range(0, 10):
    data = [faker.name(), faker.phone_number(), faker.address()]
    data_list.append(data)
print(data_list)  # [['杨雪梅', '13596272521', '湖南省宁德市高明杨街Z座 257668'], ......]

将数据写入Excel文件
先用第一个for循环进行每行写入
再用第二个for循环把每一行当中的列值写进入
for i in range(0, 10):
    data = data_list[i]
    for j in range(0, 3):
        sheet.write(i + 1, j, data[j])

7.保存Excel文件,调用save()方法
定义一个文件路径save_path,例如当前目录下./ 文件名为 userinfo.xls
save_path = "./userinfo.xls"
work_book.save(save_path)

8.读取Excel文件(ps:读取前确保文件非打开状态)
得到文件
file_name = xlrd.open_workbook("./userinfo.xls")
得到sheet页
sheet = file_name.sheets()[0]
获取总列数
total_rows = sheet.nrows
获取总行数
total_cols = sheet.ncols
print(total_rows, total_cols)  # 11 3
for i in range(1, total_rows):
    for j in range(0, total_cols):
        info = sheet.row_values(i)[j]
        print(info)

Original: https://www.cnblogs.com/caituotuo/p/16654007.html
Author: 测试蔡坨坨
Title: Python操作Excel表格

原创文章受到原创版权保护。转载请注明出处:https://www.johngo689.com/599296/

转载文章受原作者版权保护。转载请注明原作者出处!

(0)

大家都在看

  • element-ui 提示框 确认按钮在左 取消按钮在右

    添加 //取消按钮 样式 cancelButto…

    数据库 2023年6月16日
    081
  • Linux–>定时任务调度

    指定系统在某个时间执行特点的命令或程序。 任务调度分类: crontab 选项 常用选项 选项 说明 -e 编辑crontab定时任务 -l 查询crontab任务 -r 删除当前…

    数据库 2023年6月14日
    070
  • Java代码中System.currentTimeMillis()方法具有什么功能呢?

    转自:http://java265.com/JavaCourse/202111/1749.html 下文笔者讲述System.currentTimeMillis()方法的具体功能,…

    数据库 2023年6月11日
    0103
  • Linux远程终端连接工具:SecureCRT

    SecureCRT SecureCRT是一款支持 SSH2、SSH1、Telnet、Telnet/SSH、Relogin、Serial、TAPI、RAW 等协议的终端仿真程序 Se…

    数据库 2023年6月11日
    0108
  • springmvc静态资源配置

    <servlet> <servlet-name>dispatcher</servlet-name> <servlet-class>o…

    数据库 2023年6月16日
    097
  • MySQL使用步骤

    出现mysqld: Can’t create directory ‘D:\Environment\mysql-5.7.37 \data’ (Er…

    数据库 2023年5月24日
    0149
  • go test 的内联问题

    写单测的时候遇到一个问题,在使用 gomonkey 进行打桩时,使用 gland 的 debug 运行测试时,测试程序正常跑通,而使用 run 或者命令行运行 go test -v…

    数据库 2023年6月9日
    0127
  • mysql对属性的增删改

    修改表 alter table 创建表db 查看表 desc与describe desc table 查看建表语句show create table t1; 修改表名 alter …

    数据库 2023年6月9日
    0120
  • Decorator 装饰(结构型)

    Decorator 装饰 (结构型) 一:描述: Decorator 装饰模式是动态地给一个对象增加一些额外的功能职责特性。 来替换以前使用的继承来静态扩展对象的功能,避免子类的增…

    数据库 2023年6月11日
    084
  • MySQL实战45讲 18

    18 | 为什么这些SQL语句逻辑相同,性能却差异巨大? 在 MySQL 中,有很多看上去逻辑相同,但性能却差异巨大的 SQL 语句。对这些语句使用不当的话,就会不经意间导致整个数…

    数据库 2023年6月14日
    082
  • 当mysql表从压缩表变成普通表会发生什么

    本文章做了把mysql表从压缩表过渡到普通表的实验过程,看看压缩表变成普通表会发生什么?本文针对mysql5.7和mysql8分别进行了实验。 1、什么是表压缩 在将压缩表引入普通…

    数据库 2023年5月24日
    065
  • MySQL安装配置教程(超级详细)

    一、 下载MySQL Mysql官网下载地址:https://downloads.mysql.com/archives/installer/ 1. 选择要安装的版本,本篇文章选择的…

    数据库 2023年5月24日
    0181
  • 如何写出有效的单元测试

    测试不要名不副实避免测试的描述与测试内容不符;测试结果必须精准;测试该失败的时候一定要失败! 测试私有或者受保护的方法解决思路: 将方法变成公共方法; 将方法抽取到新类; 将方法变…

    数据库 2023年6月14日
    0105
  • 摸鱼系列之idea摸鱼插件推荐

    前言 作为一枚程序员,上班时候正撸着代码呢,撸不出代码了,没灵感了,看需求念头不通达了,脑瓜里蹦不出一丁点火花了,这时候怎么办?程序在运行,还要好几分钟,等待时间里,白白浪费了,玩…

    数据库 2023年6月16日
    0134
  • SQL的约束

    概念:约束是作用于表中的字段以限制表中数据存储的规则 [En] concept: constraints are rules that act on fields in a tab…

    数据库 2023年5月24日
    0105
  • Test post from Metablog Api

    This is the body of the post posted on2011-02-06 17:25 迷你软件 阅读(328 ) 评论() 编辑 本网站绝大部分资源来源于I…

    数据库 2023年6月11日
    093
亲爱的 Coder【最近整理,可免费获取】👉 最新必读书单  | 👏 面试题下载  | 🌎 免费的AI知识星球