python使用xlwt,xlrd,xlutils模块操作Excel

1.xlrd,xlwt,xlutilsc.copy模块概述

开发者:Simplistix

项目地址:https://www.python-excel.org/

GitHub开源:https://github.com/python-excel

2.xlrd模块

2.1 Note

xlrd模块是Python用来读取".xls"和“.xlsx”格式的Excel文件的模块库。
我们主要用到的API是xlrd.open_workbook(filename):用来打开我们的Excel工作簿文件[也就是workbook对象]
主要用到的对象/类有:xlrd.book.Book 、xlrd.sheet.Sheet、xlrd.sheet.Cell
分别对应Excel当中的:workbook、worksheet[sheet]、cell
xlrd.book.Book对象主要用到了1个属性和4个方法:具体见2.3部分
xlrd.sheet.Sheet对象主要用到了3个属性和6个方法:具体见2.4部分
xlrd.sheet.Cell对象主要用到了2个属性和1个方法:具体见2.5部分

2.2 wb=xlrd.open_workbook(‘filename’,on_demand=True)

  filename 指定打开文件的文件路径
  on_demand——True 按需加载表单/False 直接加载所有表单[可省略]

2.3 Class xlrd.book.Book

Property

PropertyDescription
wb.nsheetworkbook对象包含的sheet对象的个数

Function

FunctionsDescription
sheetlist[ ]=wb.sheets()返回一个包含所有sheet对象的列表
sheetnamelist[ ]=wb.sheet_names()返回所有表单的名称
sheet = wb.sheet_by_index(0)使用序号索引sheet对象
sheet = wb.sheet_by_name(name)根据名称索引sheet对象

2.4 Class xlrd sheet.Sheet

Property

PropertyDescription
sheet.name表单名称
sheet.nrows表单的最大行数
sheet.ncols表单的最大列数

Function

FunctionDescription
cell= sheet.cell(n,m)返回第n行第m列的单元格对象
sheet.cell_value(n,m)返回第n行第m列的单元格对象的值
sheet.cell_type(n,m)返回第n行第m列的单元格对象的类型
cell_list[ ] = sheet.row(n)返回第n行整行的Cell对象组成的列表
sheet.row_value()返回指定行内若干列的Cell对象的值
sheet.row_type()返回指定行内若干列的Cell对象的类型
cell_list[ ] = sheet.col(n)返回第n列整列的Cell对象组成的列表
sheet.col_value()返回指定列内若干行的Cell对象的值
sheet.col_type()返回指定列内若干行的Cell对象的类型

2.5 Class xlrd.sheet.Cell

Property

PropertyDescription
cell.value返回单元格的值
cell.ctype返回单元格的类型

Function

functionDescription
cell.dump()打印单元格的信息

2.6 example

import xlrd

#打开workbbok
wb = xlrd.open_workbook("workbookname.xlsx")

#查看有多少个worksheet
print(f'workbook有{wb.nsheets}个sheet')
print(f'Excel中sheet的名字为:{wb.sheet_names()}')
print(wb.sheets())

#获取worksheet的三种方法
sh1 = wb.sheet_by_index(0)
sh2 = wb.sheet_by_name('sheetname')
sh3 = wb.sheets()[0]

#查看worksheet对象
print(sh1)
print(sh2)
print(sh3)

#Sheet的名称,有几行几列
print(f'sheet的名称为{sh1.name}')
print(f'sheet有{sh1.nrows}行')
print(f'sheet有{sh1.ncols}列')

#获取Cell的值
print(f'第一行第三列的数据是{sh1.cell_value(0,2)}')
print(f'第一行第三列的数据是{sh1.cell(0,2).value}')

print(f'第一行第三列的单元格类型是{sh1.cell_type(0,2)}')


#获取row&col的值
print(sh1.row_values(0))
print(sh1.col_values(1))

print(f'第一行的单元格类型是{sh1.row_types(0)}')
print(f'第二列的单元格类型是{sh1.col_types(1)}')


#遍历所有数据
for r in range(sh1.nrows):
    for c in range(sh1.ncols):
        print(f'第{r}行第{c}列的数据为{sh1.cell(r,c)}')

3.xlutils.copy模块

nwb = copy(wb)

将xlrd.book.Book对象转换成xlwt.workbook.Workbook对象

example

import xlrd
from xlutils.copy import copy 

#读取workbook
wb = xlrd.open_workbook('workbookname.xlsx')

#输出xlrd中workbook的对象类型
print(f"xlrd的workbook的对象类型是:{type(wb)}")

#转换workbook的对象类型
nwb = copy(wb)

#输出新的workbook的对象类型
print(f"转换后newworkbook的对象类型是:{type(nwb)}")

输出结果如下图:
在这里插入图片描述

4.xlwt模块

4.1 Note

xlwt是Python用来创建和写入‘.xls’格式的Excel文档的。
主要的API是xlwt.Workbook()用来创建一个workbook对象。
主要用xlwt.XFStyle()来设置单元格的格式、字体、边框、对齐方式、背景和保护,具体见4.5
主要用到的对象/类有:xlwt.Workbook.Workbook 、xlrd.Worksheet.Worksheet
分别对应Excel当中的:workbook、worksheet[sheet]
xlrd.book.Book对象主要用到了3个方法:具体见4.3部分
xlrd.sheet.Sheet对象主要用到了1个方法:具体见4.4部分

4.2 xlwt.Workbook()

  wb= xlwt.Workbook()     #创建一个新的workbook对象

4.3 Class xlwt.workbook.Workbook

functionDescription
wb.save(Filename)保存workbook对象
wb.add_sheet(sheetname,cell_overwrite_ok=False)新建一个sheet对象-cell_overwrite_ok=False[可省略]
sheet=wb.get_sheet(index/sheetname)根据索引或表名获取sheet对象

4.4 Calss xlwt.worksheet.Worksheet

sheet.write(r,c,label='',style=<xlwt.style.xFstyleobject>)
r-单元格的行号
c-单元格的列号
label-要写入的数据值
style-应用于单元格的格式[可省略]

4.5 xlwt.XFStyle()

#设置单元格的高度
sh.row(3).height_mismatch = True
sh.row(3).height = 10*256
#设置单元格的宽度
sh.col(3).width = 20*256


#方法2:创建font对象
font = xlwt.Font()
#设置对象属性
font.name = '微软雅黑'   #字体格式
font.colour_index= 4    #字体颜色
font.height = 12*20     #字体大小 *20为单位
font.bold = True        #字体加粗
font.underline = True   #字体下划线
font.italic= True       #字体倾斜
#将font对象赋值给style
style = xlwt.XFStyle()
style.font = font

#创建Alignment对象
Alig=xlwt.Alignment()
#设置对象属性
Alig.horz = 2     #水平居中
Alig.vert = 1     #垂直居中
#将Align对象赋值给style1
style1 = xlwt.XFStyle()
style1.alignment = Alig

#创建border对象
border = xlwt.Borders()
#设置对象属性
border.left  = 1
border.right = 1 
border.top   = 1
border.bottom= 1 
border.left_colour  = 1
border.right_colour = 2 
border.top_colour   = 3
border.bottom_colour= 4
#将Align对象赋值给style1
style2 = xlwt.XFStyle()
style2.borders = border
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值