首页 > 编程语言 >Python操作Excel表格

Python操作Excel表格

时间:2022-09-04 00:01:38浏览次数:74  
标签:sheet 表格 Python Excel range total data

转载请注明出处❤️

作者:测试蔡坨坨

原文链接: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
    
  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)
    

运行结果:借助Faker模块生成随机的个人信息,并将其写入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)

标签:sheet,表格,Python,Excel,range,total,data
From: https://www.cnblogs.com/caituotuo/p/16654007.html

相关文章

  • 用于数据科学的 Java 与 Python
    用于数据科学的Java与Python一个对比有时做出判断的一个有用策略是仔细研究解决问题的两种方法的优缺点。如果您是数据科学的新手或正在开始一个新的数据科学项目并......
  • “如何精通 Python?”——我 LinkedIn 上的一个常见问题。
    “如何精通Python?”——我LinkedIn上的一个常见问题。Photoby克里斯·里德on不飞溅1.你知道其他编程语言和数据结构的概念吗?不。由于您不了解任何基本的编......
  • PHP---导入Excel数据
    最近在开发一个系统,需要做大量的数据处理,特别是导入数据,使用的框架thinkphp6,就目前来说,下面介绍一种逐行添加的方法:注意:以下这种方式,仅提供开发思路,读取一行,添加一行。但......
  • Python3项目初始化10-->前端基础jquery、ajax,sweetalert--更新用户改造
    33、JS基础-ajax_post截止目前,完成了登录,创建和删除,“编辑”这块还是老的信息。打开a、点击编辑=>(内容)=>dialogb、内容=>后端ajax 页面上遍历用户时......
  • Excel表格斜杠分割打字
    步骤:一、选择单元格,右击选择设置单元格格式二、选择边框,如图1所示三、选择字体,选择上标或者下标,利用空格调整距离位置,如图2所示图1   图2......
  • 【C++】C++ qt 与 python 简单进程通讯
    前言准备用C++写一个简单的文字转语音的小东西,对C++qt这个怎么弄不太清楚(现在看到qt5.8后有个叫QTextToSpeech的东西),发现python调用一些库来进行文字转语音的发声比较简......
  • 学习:python进阶 单例模式
        通过类的绑定方法来实现  如果用戶不通过绑定类的方法实例化对象,而是直接通过类名加括号方式实例化对象,那这样就不是单例模式了 ......
  • 命令行查看python版本弹出应用商店
    命令行查看python版本弹出应用商店win10系统,在命令行输入python查看版本,弹出应用商店,出现该问题的原因可参考下列博客:链接:https://blog.csdn.net/qq_36949278/article......
  • Python爬虫-Pyquery的用法(四)
    一、PyQuery介绍与安装1、PyQuery简介PyQuery简介PyQuery库也是一个非常强大又灵活的网页解析库,如果你有前端开发经验的,都应该接触过jQuery,那么PyQuery就是你非常绝......
  • 学习 python进阶 限制子类必须实现方法
          方法二 ......