Python自动化操作Excel方法详解(xlrd,xlwt)

目录
  • 一、Python操作Excel 7大库对比
  • 二、xlrd 读取excel操作
    • 1. 打开文件
    • 2. 获取所有表名
    • 3. 指定sheet表
    • 4. 对sheet表的行操作
    • 5. 对sheet表的列操作
  • 三、xlwt 写入Excel表操作
    • 1. 写入单个数据
    • 2. 写入多个数据
    • 3. 设置列宽
    • 4. 设置行高
    • 5. 设置单元格风格

一、Python操作Excel 7大库对比

Excel是Windows环境下流行的、强大的电子表格应用。无论是在工作中还是学习中我们都几乎在不间断的使用Excel来 记录或者处理一些数据。 例如,可能有-个无聊的任务,需要从一个电子表格拷贝一些数据,粘贴到另一个电子表格中。或者可能需要从几千行中挑选几行,根据某种条件稍作修改。或者需要查看几百份部门预算电子表格,寻找其中的 指定内容。正是这种无聊无脑的电子表格任务,如果让人工来手动完成,则无论是时间升本还是精力成本都不是一件好事情,但是可以通过Python来完成。

7大库功能对比图如下(本文主要介绍:xlrd和xlwt):

二、xlrd 读取excel操作

xlrd模块用于读取Excel的数据,速度非常快。支持.xls.xlsx两种文件格式的读取

1. cmd控制台安装模块

pip install xlrd

2. 导入模块

import xlrd

测试表如下:

1. 打开文件

xlrd.open_workbook(path)

wb = xlrd.open_workbook("./a.xls")
print(wb)

运行结果:

<xlrd.book.Book object at 0x000001F905A33DC0>

2. 获取所有表名

wb.sheet_names()

sheet_names_list = wb.sheet_names()
print(sheet_names_list)

运行结果:

['Sheet1', 'Sheet2', 'Sheet3']

3. 指定sheet表

wb.sheet_by_index(索引) or wb.sheet_by_name("sheet表名")

# 方式1:索引顺序获取
sheet_1 = wb.sheet_by_index(0)

# 方式2:名称获取
sheet_2 = wb.sheet_by_name("Sheet1")

4. 对sheet表的行操作

1. 获取sheet表总函数:sheet.nrows

2. 返回由该行中所有的单元格对象组成的列表,列表内是键值对:sheet.row(1),如:[列名1:'值',列名2:'值', ...]或者sheet.row_slice(1)

3. 返回指定行的所有单元格数值组成的列表:sheet.row_values(rowx, start_colx=0, end_colx=None) ,如:['值1','值2',...]

4. 返回指定行的有效长度:sheet.row_len(rowx)

# 1.获取sheet表总函数:sheet.nrows
print("总行数为:", sheet_1.nrows)
# 2.返回由该行中所有的单元格对象组成的列表,列表内是键值对: sheet.row(1)
print(sheet_1.row(1))
# 或者sheet.row_slice(1)
print(sheet_1.row_slice(1))
# 3.返回指定行的所有单元格数值组成的列表: sheet.row_values(rowx, start_colx=0, end_colx=None)
print(sheet_1.row_values(1))
# 4.返回指定行的有效长度:sheet.row_len(rowx)
print("返回指定行的有效长度:", sheet_1.row_len(1))

print('-' * 20)
# 5. 读取整个表
for i in range(sheet_1.nrows):
    print(sheet_1.row_values(i))

运行结果:

总行数为: 4
[text:'物品1', empty:'', number:100.0, text:'EUR 0.1', text:'EUR 0.1']
[text:'物品1', empty:'', number:100.0, text:'EUR 0.1', text:'EUR 0.1']
['物品1', '', 100.0, 'EUR 0.1', 'EUR 0.1']
返回指定行的有效长度: 5
--------------------
['item', 'b', 'PCS', 'UNIT', 'TOTAL']
['物品1', '', 100.0, 'EUR 0.1', 'EUR 0.1']
['物品2', '', 100.0, 'EUR 0.1', 'EUR 0.1']
['物品3', '', 200.0, 'EUR 0.2', 'EUR 0.2']

5. 对sheet表的列操作

1. 返回指定sheet表的有效列数:sheet.ncols

2. 返回由该列中所有的单元格对象组成的列表,列表内是键值对:sheet.col(1),如:[列名1:'值',列名2:'值', ...]或者sheet.col_slice(1)

3. 返回指定列的所有单元格数值组成的列表:sheet.col_values(colx, start_colx=0, end_colx=None),如:['列名','值1','值2',...]

# 1. 返回指定sheet表的有效列数:sheet.ncols
print("总列数为:", sheet_1.ncols)
# 2. 返回由该列中所有的单元格对象组成的列表,列表内是键值对:sheet.col(1)
print(sheet_1.col(1))
# 或者sheet.col_slice(1)
print(sheet_1.col_slice(1))
# 3. 返回指定列的所有单元格数值组成的列表:sheet.col_values(colx, start_colx=0, end_colx=None)
print(sheet_1.col_values(0))  # 带列名
print(sheet_1.col_values(0, 1))  # 不带列名
print('-' * 20)

# 4. 读取全部表
for i in range(sheet_1.ncols):
    print(sheet_1.col_values(i))

运行结果:

总列数为: 5
[text:'b', empty:'', empty:'', empty:'']
[text:'b', empty:'', empty:'', empty:'']
['item', '物品1', '物品2', '物品3']
['物品1', '物品2', '物品3']
--------------------
['item', '物品1', '物品2', '物品3']
['b', '', '', '']
['PCS', 100.0, 100.0, 200.0]
['UNIT', 'EUR 0.1', 'EUR 0.1', 'EUR 0.2']
['TOTAL', 'EUR 0.1', 'EUR 0.1', 'EUR 0.2']

三、xlwt 写入Excel表操作

xlwt 模块可以将数据写入到 Excel 工作簿中。目前已支持写入.xls.xlsx两种文件格式

1. cmd控制台安装模块

pip install xlwt

2. 导入模块

import xlwt

1. 写入单个数据

1. 创建Excel表对象:xlwt.Workbook(encoding='utf8')

2. 新建sheet表:worksheet = workbook.add_sheet('Sheet1')

3. 写入数据到指定单元格:worksheet.write(0, 0, "python")。第一个参数是第 i 行,第二个是第 j 列,第三个是要写的参数(字符串或数字)

4. 保存文件:workbook.save('test.xlsx')。目前已支持写入.xls.xlsx两种文件格式

测试代码:

import xlwt

# 1. 创建Excel表对象
workbook = xlwt.Workbook(encoding='utf8')
# 2. 新建sheet表
worksheet = workbook.add_sheet('Sheet1')
# 3. 写入数据到指定单元格
worksheet.write(0, 0, "python")
# 4. 保存文件分两种格式
workbook.save('test.xls')
workbook.save('test.xlsx')

运行结果如下:生成两个新文件

2. 写入多个数据

测试代码:

import xlwt

data_list = [('小白', '20', '男'), ('小黑', '21', '男'), ('小红', '20', '女')]
# 1. 创建Excel表对象
workbook = xlwt.Workbook(encoding='utf8')
# 2. 新建sheet表
worksheet = workbook.add_sheet('Sheet1')
# 3. 自定义列名
col1 = ('姓名', '年龄', '性别')
# 4. 将列属性元组col写进sheet表单中第一行
for i in range(0, len(col1)):
    worksheet.write(0, i, col1[i])
# 5. 将数据写进sheet表单中
for i in range(0, len(data_list)):
    data = data_list[i]
    for j in range(0, len(col1)):
        worksheet.write(i + 1, j, data[j])
# 6. 保存文件分两种格式
workbook.save('test.xls')

运行结果:

3. 设置列宽

cols_num是列的数目,可以通过修改12这个值,修改列的宽度

for c in range(len(col1)):
    worksheet.col(c).width = 256 * 24

运行结果:

4. 设置行高

设置行高,修改1600为别的值,可以修改行的高度

测试代码:

# 5. 将数据写进sheet表单中
for i in range(0, len(data_list)):
    data = data_list[i]
    for j in range(0, len(col1)):
        worksheet.write(i + 1, j, data[j])
        # 6. 设置行高
        worksheet.row(i + 1).height_mismatch = True
        worksheet.row(i + 1).height = 1600  # 设置行高

运行结果:

5. 设置单元格风格

常用设置单元格的属性:

样式 说明
xlwt.Font() 字体设置
xlwt.Pattern() 背景设置
xlwt.Borders() 边框设置
xlwt.Alignment() 对准设置

测试代码:

def body_style():
    # 一、创建一个样式对象,初始化样式 style
    style = xlwt.XFStyle()  # Create Style对象

    # 二、字体风格设置
    font = xlwt.Font()  # Create Font对象
    font.name = "SimSun"  # 设置字体类型,宋体
    font.colour_index = 4  # 设置字体颜色
    font.height = 20 * 12  # 字体大小,12为字号,20为衡量单位
    font.bont = True  # 设置字体加粗
    font.underline = True  # 下划线
    font.italic = True  # 斜体字

    # 二、背景设置
    pattern = xlwt.Pattern()
    pattern.pattern = xlwt.Pattern.SOLID_PATTERN  # May be: NO_PATTERN, SOLID_PATTERN, or 0x00 through 0x12
    pattern.pattern_fore_colour = 4  # 给背景颜色赋值

    # 三、边框设置
    borders = xlwt.Borders()  # 创建边框对象,    # .DASHED:虚线;.NO_LINE:没有
    # 上下左右都添加边框
    borders.left = 1
    borders.right = 1
    borders.top = 1
    borders.bottom = 1
    # 设置边框颜色
    borders.left_colour = 2
    borders.right_colour = 2
    borders.top_colour = 2
    borders.bottom_colour = 2

    # 四、位置设置
    alignment = xlwt.Alignment()
    alignment.horz = 1  # 设置水平位置,0是左对齐,1是居中,2是右对齐
    alignment.wrap = 1  # 设置自动换行

    # 五、设置好之后,全部都加到style上
    style.alignment = alignment
    style.font = font
    style.borders = borders
    return style

应用样式:

sheet.write(row, column, i)  # 不带格式
sheet.write(row, column, i, style)  # 有格式

运行结果:

到此这篇关于Python自动化操作Excel方法详解(xlrd,xlwt)的文章就介绍到这了,更多相关Python自动化操作Excel内容请搜索我们以前的文章或继续浏览下面的相关文章希望大家以后多多支持我们!

(0)

相关推荐

  • python读写修改Excel之xlrd&xlwt&xlutils

    py读写修改常用的三种方法 xlwt:用于写入 Excel 文件 xlrd:用于读取 Excel 文件 xlutils:用于操作 Excel 文件的实用工具,比如复制.分割.筛选等 0.安装模块 pip3 install xlrd xlwt xlutils 1. 写入excel git:https://github.com/python-excel/xlwt/tree/master/examples 实现效果 上代码 from datetime import datetime import xl

  • Python操作excel的方法总结(xlrd、xlwt、openpyxl)

    前言 在处理excel数据时发现了xlwt的局限性–不能写入超过65535行.256列的数据(因为它只支持Excel 2003及之前的版本,在这些版本的Excel中行数和列数有此限制),这对于实际应用还是不够的.为此经过一番寻找发现了一个支持07/10/13版本Excel的openpyxl,虽然功能很强大,但是操作起来感觉没有xlwt方便.下面分别说下几个模块的常用操作. xlrd xlrd是用来从Excel中读写数据的,但我平常只用它进行读操作,写操作会遇到些问题.用xlrd进行读取比较方便,

  • Python如何利用xlrd和xlwt模块操作Excel表格

    目录 简介: 安装: 初始数据: xlrd使用: xlwt使用: xlwt使用示例2: 总结 简介: xlrd和xlwt是python的第三方库,xlrd模块实现对excel文件内容读取,xlwt模块实现对excel文件的写入. 安装: pip install xlrd pip install xlwt 初始数据: excelLearn.xls 个人信息表: 姓名 年龄 地址 Tom 26 CN Jo 27 UK Lily 28 US Kim 29 JP 班级成绩表: 考试日期 班级 分数 20

  • Python利用xlrd 与 xlwt 模块操作 Excel

    目录 Python 操作 Excel 打开Excel文件读取数据 行的操作 获取所有行数据 列的操作 单元格操作 Python 操作 Excel 本篇博客介绍一种 Python 操作 Excel 的办法,核心用到 xlrd与xlwt模块. xlrd 用于读 excel: xlwt 用于写 excel. 模块安装比较简单: pip install xlrd,xlwt 正式开始前还需要了解一下 Excle 中的三大对象: WorkBook:工作簿对象 Sheet:表对象 Cell:单元格对象 这里 

  • Python使用xlrd和xlwt批量读写excel文件的示例代码

    一.使用xlrd对excel进行数据读取 excel表格示例: 安装xlrd库 pip install xlrd 导入xlrd库 import xlrd 读取excel文件,即刚刚创建的excel表格 # 给出excel文件绝对路径 loc = ("path of file") # 打开工作表 wb = xlrd.open_workbook(loc) # 这里读取的是第一个sheet sheet = wb.sheet_by_index(0) 打印excel表格第一行第一列 >&g

  • Python xlrd/xlwt 创建excel文件及常用操作

    一.创建excel代码 备注:封装好了(可直接调用) """ -*- coding:utf-8 -*- @Time :2020/8/20 21:02 @Author :Jarvis @File :jar_excel_util.py @Version:1.0 """ from typing import List import xlwt class JarExcelUtil: def __init__(self, header_list: List

  • Python自动化操作Excel方法详解(xlrd,xlwt)

    目录 一.Python操作Excel 7大库对比 二.xlrd 读取excel操作 1. 打开文件 2. 获取所有表名 3. 指定sheet表 4. 对sheet表的行操作 5. 对sheet表的列操作 三.xlwt 写入Excel表操作 1. 写入单个数据 2. 写入多个数据 3. 设置列宽 4. 设置行高 5. 设置单元格风格 一.Python操作Excel 7大库对比 Excel是Windows环境下流行的.强大的电子表格应用.无论是在工作中还是学习中我们都几乎在不间断的使用Excel来

  • 分享11个Python自动化操作Excel的方法

    目录 一.openpyxl是什么 二.openpyxl安装 三.openpyxl操作指南 1.创建工作簿 2.写工作簿 3.插入图片 4.删除行和列 5.将工作表转换为数据框 6.2D区域图 7.雷达图 8.使用公式 9.给单元格设定字体颜色 10.设定字体和大小 11.设定单元格的边框.字体.颜色.大小和边框背景色 前言: 今天我教大家如何利用Python自动化操作Excel,包括:介绍操作Excel的工具包.安装方法及操作Excel具体方法.对于每天有大量重复性工作的同学来说,这款工具绝对是

  • 在自动化中用python实现键盘操作的方法详解

    原来在robotframework中使用press key方法进行键盘的操作,但是该方法需要写被操作对象的locator,不是很方便,现在找到了一种win32api库写键盘操作的一个方法(注意:此方法被操作界面必须在顶层),首先,需要安装win32api的python库,使用命令: pip install pywin32 具体实现代码如下: import win32api import win32con class MyLibrary(object): def keybd_event(self,

  • python实现读取excel表格详解方法

    目录 一.python读取excel表格数据 1.读取excel表格数据常用操作 2.xlrd模块主要操作 3.读取单元格内容为日期时间的方式 4.读取合并单元格的数据 二.python写入excel表格数据 一.python读取excel表格数据 1.读取excel表格数据常用操作 import xlrd # 打开excel表格 data_excel = xlrd.open_workbook('data/dataset.xlsx') # 获取所有sheet名称 names = data_exc

  • MySQL数据库设计之利用Python操作Schema方法详解

    弓在箭要射出之前,低声对箭说道,"你的自由是我的".Schema如箭,弓似Python,选择Python,是Schema最大的自由.而自由应是一个能使自己变得更好的机会. Schema是什么? 不管我们做什么应用,只要和用户输入打交道,就有一个原则--永远不要相信用户的输入数据.意味着我们要对用户输入进行严格的验证,web开发时一般输入数据都以JSON形式发送到后端API,API要对输入数据做验证.一般我都是加很多判断,各种if,导致代码很丑陋,能不能有一种方式比较优雅的验证用户数据呢

  • Python自动化办公实战案例详解(Word、Excel、Pdf、Email邮件)

    目录 背景 实现过程 1)替换Word模板生成对应邀请函 2)将Word邀请函转化为Pdf格式 4)自动发送邮件 5)完整代码 总结 背景 想象一下,现在你有一份Word邀请函模板,然后你有一份客户列表,上面有客户的姓名.联系方式.邮箱等基本信息,然后你的老板现在需要替换邀请函模板中的姓名,然后将Word邀请函模板生成Pdf格式,之后编辑统一的邀请话术(邮件正文),再依次发送邀请函附件到客户邮箱,你会怎么做? 正常情况下,我们肯定是复制粘贴Excel表格中的客户姓名,之后挨个Word文档进行替换

  • 利用Python自动化生成爱豆日历详解

    目录 1.科普 2.爱豆日历 3.总结 本次内容有感于<Python编程快速上手-让繁琐工作自动化>. 根据书中的「处理Excel电子表格」章节内容,做出一份专属日历. 使用的模块为openpyxl,一个能读取和修改Excel电子表格的Pyhton模块. 实现自动化处理表格信息,摆脱无趣无味. 此外还有calendar模块,通过该模块生成日历信息. 最后利用openpyxl和calendar库,实现自动化生成爱豆日历. 1.科普 在进行代码操作前,简单对相关知识做个简单的学习. 一个Excel

  • Python中格式化format()方法详解

     Python中格式化format()方法详解 Python中格式化输出字符串使用format()函数, 字符串即类, 可以使用方法; Python是完全面向对象的语言, 任何东西都是对象; 字符串的参数使用{NUM}进行表示,0, 表示第一个参数,1, 表示第二个参数, 以后顺次递加; 使用":", 指定代表元素需要的操作, 如":.3"小数点三位, ":8"占8个字符空间等; 还可以添加特定的字母, 如: 'b' - 二进制. 将数字以2为基

  • 对python函数签名的方法详解

    函数签名对象,表示调用函数的方式,即定义了函数的输入和输出. 在Python中,可以使用标准库inspect的一些方法或类,来操作或创建函数签名. 获取函数签名及参数 使用标准库的signature方法,获取函数签名对象:通过函数签名的parameters属性,获取函数参数. # 注意是小写的signature from inspect import signature def foo(value): return value # 获取函数签名 foo_sig = signature(foo)

  • 把JSON数据格式转换为Python的类对象方法详解(两种方法)

    JOSN字符串转换为自定义类实例对象 有时候我们有这种需求就是把一个JSON字符串转换为一个具体的Python类的实例,比如你接收到这样一个JSON字符串如下: {"Name": "Tom", "Sex": "Male", "BloodType": "A", "Hobbies": ["篮球", "足球"]} 我需要把这个转换为具

随机推荐