python处理excel的模块有很多,这里只介绍2种openpyxl 和 pandas
openpyxl
python很多处理excel的模块支持2003,对2007的模块不是太友善。而openpyxl弥补这个遗憾。但是由于这个模块有自愿者维护的,有些功能还是不完成,但这个模块还是一直处理维护中的模块,所以功能会越来越强大。
openpyxl不是python自带的处理excel的模块,所以需要安装openpyxl的包.
pip install openpyxl
创建文档
from openpyxl import Workbook
wb= Workbook()
wb.save('test2.xlsx')
其中Workbook()使用workbook获取一个实例,这个实例需要调用save()函数保存到磁盘上,如果不新建工作表sheet,默认显示一张title为sheet的工作表,最后一定使用save方法序列化到本地。
Workbook对象的方法使用的实例
方法名 | 具体用法 |
---|---|
create_sheet(self, title=None, index=None) | 创建一个sheet表格,title为sheet的名称,index表示插入的位置,默认插入到最后 |
add_named_style(self, style) | 添加样式 |
get_sheet_by_name(self, name) | 返回获取工作表的名字,可以指定的表格操作 |
def active(self, *value) | 激活当前的表格 |
remove(value) | 删除指定的表格 |
close() | 对于只读或者只写的表格,可以使用这个方法关闭 |
Workbook对象使用方法
1、add_named_style(),添加样式
# 指定一个样式
highlight = NamedStyle(name="highlight")
highlight.font=Font(bold=True,size=30)
bd = Side(style='thick', color="000000")
highlight.border = Border(left=bd, top=bd, right=bd, bottom=bd)
# 添加到样式表
wb.add_named_style(highlight)
#激活当前表格
ws = wb.active
#指定区域显示该样式
ws['A1'].style = highlight
2、创建表格
wb.create_sheet("one")
wb.create_sheet("two",0)
3、移除表格
wb.remove(wb.get_sheet_by_name('one'))
4、保存表格
wb.save('test2.xlsx')
操作表格-Worksheet
1、获取Worksheet对象
方法一,使用active ,如果不指定下标,默认是0(第一张表格)
#指定表格的下标
wb.active =1
#获取Worksheet对象
ws=wb.active
方法二:使用get_sheet_by_name() 方法
sheetnames = wb.get_sheet_names()
ws = wb.get_sheet_by_name(sheetnames[0])
2、title改名字
ws.title ='limie'
3、获取一列数据(所有有数据的行)
print([j.value for i in ws.rows for j in i])
4、获取一行的数据(所有有数据的列)
print([j.value for i in ws.columns for j in i])
5、获取指定的cell的值
print(ws['A5'].value)
6、cell通过坐标获取
cell(self, coordinate=None, row=None, column=None,value=None)
ws.cell(row = 2, column = 3)
7、写入数据
a、不指定区域的话,默认写到最后有数据的行的下一行,例如第2行有数据,那么下次执行append的时候,数据插入第三行
wb= load_workbook('test2.xlsx')
wb.active =1
ws=wb.active
ws.append(value for value in ['苹果','雪梨','青苹果','柠檬'])
wb.save('test2.xlsx')
b、指定某个单元格,例如把雪梨改为桃子,只需要把append的改为下列就行
ws['B1']='桃子'
cell方法中的函数row,column的值默认从1开始
ws.cell(row =1,column=3,value='哈密瓜')
设置样式
设置excel字体样式、单元格样式等,使用的是openpyxl.styles模块。
Styles是用于改变你的希望显示的数据的样式。也可以用于设置指定的单元格或单元区域的数字格式。
Styles能够提供的功能有:
1、font to set font size, color, underlining, etc.(能够设定字体的大小、颜色、下划线等属性)
2、fill to set a pattern or color gradient(能够设置单元格的填充样式或颜色渐变)
3、border to set borders on a cell(能够设置单元格的边框)
4、cell alignment(能够设置单元格的对齐)
5、protection(能够设置访问限制)
font = Font(
# name = '微软雅黑',
size = 15,
bold = True,
italic = False,
vertAlign = None,
underline = 'none',
strike = False,
color = 'FF008B00'
)
# 设置单元格的填充样式或者渐变颜色
fill = PatternFill(
fill_type = None,
start_color = 'FFFF3030',
end_color = 'FF000000'
)
# 设置单元格的对齐
alignment = Alignment(
horizontal = 'general',
vertical = 'bottom',
text_rotation = 0,
wrap_text = False,
shrink_to_fit = False,
indent = 0
)
# 设置访问限制
protection = Protection(locked = True,
hidden = False)
TM
PDF Editor