python自动化操作Excel文件

通过程序操作excel表格是编程中比较常见的操作,python本身不能直接操作excel,需要安装第三方的模块来实现excel的操作。

Python中可以操作excel模块主要有:

1、 xlrd 模块实现exlcel表格读取

2、 xlwd 模块实现excel表格创建和写入

下面主要以xlrd和xlwd模块为例,给大家分享下这两个模块的使用。

一、 模块安装

使用模块前,需要提前在电脑上进行安装,如果是在线安装的话,需要确保你的电脑能够上网。

图片

二、 excel表格读取

提前在我的电脑D盘根目录下创建了一个名为test的excel表格,其内容如下:

图片

2.1 导入模块并打开excel文档

import xlrd # 导入xlrd 模块
# 读取指定路径的excel文档,返回一个工作簿对象
workbook = xlrd.open_workbook("test.xlsx")
print(workbook) # <xlrd.book.Book object at 0x000001DF7FA278D0>

由于一个工作簿文档里可能包含多个sheet,对工作簿中的sheet_names方法来获取当前有哪些sheet。

import xlrd # 导入xlrd 模块
# 读取指定路径的excel文档,返回一个工作簿对象
workbook = xlrd.open_workbook("test.xlsx")
sheet_lst = workbook.sheet_names() # 打印当前的工作表的名称,以列表形式返回
print(sheet_lst)  # ['Sheet1']

2.2 读取指定sheet表的内容

对于工作簿对象,通过调用sheet_by_name或sheet_by_index属性来获取指定sheet。

# encoding:utf-8
import xlrd # 导入xlrd 模块
# 读取指定路径的excel文档,返回一个工作簿对象
workbook = xlrd.open_workbook("test.xlsx")
sheet_lst = workbook.sheet_names() # 打印当前的工作表的名称,以列表形式返回
tp = workbook.sheet_by_name(sheet_lst[0]) # 获取sheet对象
tp2 = workbook.sheet_by_index(0)

要获取指定sheet对象的行数和列表可以使用nrows和ncols来获取。

tp = workbook.sheet_by_name(sheet_lst[0]) # 获取sheet对象
# 获取选定sheet的总行数
print(tp.nrows)
# 获取指定sheet的总列数
print(tp.ncols)

打印指定sheet中的所有内容

使用行列索引

# 打印sheet所有的内容,可以把表格内容看做一个二维数组
for i in range(tp.nrows):
    for j in range(tp.ncols):
        print(tp.row(i)[j].value,end=" ")
    print()
tp2 = workbook.sheet_by_index(0)

使用单元格

for i in range(tp.nrows):
    for j in range(tp.ncols):
        print(tp.cell(i,j).value,end=" ")
    print()
姓名 年龄 数学 语文 
张三 15.0 92.0 93.0 
李四 16.0 93.0 90.0 
王五 4.0 87.0 89.0 

三、 创建一个excel表

3.1 创建一个sheet表

生成Workbook对象并向其添加一个表见下例:

import xlwt
# 创建一个工作簿
workbook = xlwt.Workbook()
# 在工作簿中添加一表,表名为sheet1
sheet = workbook.add_sheet("sheet1")

3.2 向刚添加的sheet1表写入内容

# 创建一个工作簿
workbook = xlwt.Workbook()
# 在工作簿中添加一表,表名为sheet1
sheet = workbook.add_sheet("sheet1", cell_overwrite_ok=True)
sheet.write(0,0,"姓名")
sheet.write(0,1,"年龄")
sheet.write(0,2,"成绩")
workbook.save("test_1.xls")

程序运行完,在d盘的根目录下打开test1文件如下图所示,write方法中的第一个参数指定行索引,第二个参数指定列索引,第三个数指定要写入的数据。

图片

3.3 设置写入单元格的字体大小,颜色和字体类型

import xlwt

# 创建一个工作簿
workbook = xlwt.Workbook()
# 在工作簿中添加一表,表名为sheet1
sheet = workbook.add_sheet("sheet1", cell_overwrite_ok=True)
# 为样式创建字体
font = xlwt.Font()
# 字体类型
font.name = "微软雅黑"
# 字体大小,11为字号,20为衡量单位
font.height = 22 * 11
# 字体颜色见
font.colour_index = 2
font.bold = True  # 字体加粗
style = xlwt.XFStyle()
style.font = font
# 设置列宽
sheet.col(0).width = 11*200

sheet.write(1,0,"姓名",style)
sheet.write(1,1,"年龄")
sheet.write(1,2,"成绩")
workbook.save("test_1.xls")

执行结果如下:

图片

颜色值表如下:

图片

import xlwt

# 创建一个工作簿
workbook = xlwt.Workbook()
# 在工作簿中添加一表,表名为sheet1
sheet = workbook.add_sheet("sheet1", cell_overwrite_ok=True)
# 为样式创建字体
font = xlwt.Font()
# 字体类型
font.name = "微软雅黑"
# 字体大小,11为字号,20为衡量单位
font.height = 22 * 11
# 字体颜色见
font.colour_index = 2
font.bold = True  # 字体加粗

borders = xlwt.Borders()  # 为样式创建边框
borders.left = 6
borders.right = 6
borders.top = 6
borders.bottom = 6

style = xlwt.XFStyle()
style.font = font
style.borders = borders

# 设置列宽
sheet.col(0).width = 11 * 200

sheet.write(0, 0, "姓名", style)
sheet.write(0, 1, "年龄", style)
sheet.write(0, 2, "成绩", style)
workbook.save("test_1.xls")

  • 1
    点赞
  • 4
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值