python操作excel的三种方法

python操作excel主要用到三个库,分别是xlrd:读取一个已有的excel中的数据;xlwt:创建一个全新的excel文件,然后对这个文件进行写入内容以及保存;xlutils:读一个excel文件,然后进行修改或追加。注意:只能操作xls类型的,不能操作xlsx类型的。在这里插入图片描述

一、读取excel文件

读取excel用到的库是xlrd,具体实现如下:

import xlrd
"打开指定目录下的一个excel表格,formatting_info=True表示读取各种格式信息"
get_excel= xlrd.open_workbook(r"C:\Users\fsy\Desktop\gold.xls",formatting_info=True)
print(get_excel)
#获取工作簿中的所有表格,以列表形式返回表格名称
all_excel = get_excel.sheet_names()
print("所有的表格名称:",all_excel)
# 获取工作簿中的一个工作表
get_indexsheet = get_excel.sheets()[1]#通过索引获取
print("表格的索引",get_indexsheet)
get_namesheet = get_excel.sheet_by_name("黄金")#通过名称获取
print("表格的索引",get_namesheet)
#获取该sheet表中的有效行数
nrows = get_namesheet.nrows
print("表格中的有效行数",nrows)
#获取该sheet表中的有效列数
ncols = get_namesheet.ncols
print("表格中的有效列数",ncols)
# 获取整行或者整列的内容
rows = get_namesheet.row_values(0) #获取第一行的内容
cols = get_namesheet.col_values(1) #获取第二列的内容
print("第一行的内容%s,第二列的内容%s"%(rows,cols))
# 获取单元格内容
con = get_namesheet.cell_value(1,1)#获取第二行,第二列的内容
print("获取单元格的内容:",con)
# 获取单元格数据类型
datatype = get_namesheet.cell(1,1).ctype #ctype : 0 empty,1 string, 2 number, 3 date, 4 boolean, 5 error
print(datatype)

在这里插入图片描述
读取合并后的单元格:get_namesheet.merged_cells,注意打开excel表格的时候,要将formatting_info参数设置为True,默认是False。

二、往excel文件写内容

往excel写内容用到的库是xlwt,具体实现如下:

import xlwt
# 创建一个workbook 设置编码
createbook = xlwt.Workbook(encoding = 'utf-8')
# 创建一个worksheet
createsheet = createbook.add_sheet('My Worksheet')
# 写入excel
# 参数对应 行, 列, 值
createsheet.write(1,1,'test')
# 设置写入单元格的宽
createsheet.col(1).width = 3211
# 在指定的目录下保存excel
createbook.save(r"C:\Users\fsy\Desktop\test.xls")
三、往excel文件追加内容

copy: 将xlrd.Book转为xlwt.Workbook
styles: 读取xlrd.Workbook的每一个单元格的style
display: 简单而安全地呈现xlrd读取的数据
filter: 拆分与整合多个xls文件
margins: 查看表格稀疏程度
save: 序列化xlrd.Book,转存为binary xls或stream

import xlrd
from xlutils.copy import copy
def copy_excel(target_file):
    """
    利用 xlutils.copy 拷贝一份 Excel.
    xlutils.copy 可以实现以下功能:1. 读取表格信息的功能,2. 在表格中写入数据的功能,相当于 xlrd 和 xlwt 的结合体.
    但请注意, xlrd 读取的 xlsx 具有完整的读取功能, 但保存为新表格文件时, 必须以 '.xls' 格式保存, 因为 xlwt 只支持 '.xls' 格式的保存.
    """
    # 首先用 xlrd 读取一张表格
    workbook = xlrd.open_workbook(target_file, formatting_info=False)
    """
    formatting_info 参数表示保留原数据的样式 (如原表格的标黄单元格, 加粗字体等信息的保留), 
    默认值为 False (不保留).
    另外, formatting_info=True 不保证能完美保留, 部分样式可能丢失. (个人遇到过的情况是新
    建 sheet 操作会导致原表格标黄的单元格的背景色丢失)
    """
    # 拷贝此表格
    new_book = copy(workbook)
    # 注: 此时的 new_book 不仅具有 xlwt 的功能, 还具有 xlrd 的功能, 也就是既可读又可写.
    # 先展示读的功能
    # new_book 读取 sheet 的操作和 xlrd.sheet_by_index 略有不同.
    sheet = new_book.get_sheet(2)
    # 写的功能
    # 写一个单元格.
    sheet.write(0, 0, 'writingabc')
    new_book.save(r"C:\Users\fsy\Desktop\read_write.xls")
copy_excel(r"C:\Users\fsy\Desktop\gold.xls")#完整路径
  • 2
    点赞
  • 20
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值