程序员文章、书籍推荐和程序员创业信息与资源分享平台

网站首页 > 技术文章 正文

python处理excel文件05:openpyxl模块

hfteth 2025-01-26 22:29:35 技术文章 15 ℃

python的模块xlrd可以读取excel文件,模块xlwt可以写入xls格式的excel文件,今天我们来学习python处理excel文件的另一个模块:openpyxl模块,它不仅能读取excel文件,而且还可以写入xlsx格式的excel文件。

一、安装openpyxl模块

pip install openpyxl

二、对工作簿的操作

1、新建工作簿

from openpyxl import Workbook

book = Workbook('bookname')

2、打开已有工作簿

from openpyxl import load_workbook

book = load_workbook('bookname',data_only=True)

例如:新建excel文件“tongjibiao.xlsx”,然后再打开它

参数说明:

参数“data_only”的默认值为False,表示单元格内显示公式,也可以设置为True表示单元格内显示值。

当data_only=True时,用save()函数保存工作簿后,xlsx文件单元格中的公式会被替换为常数结果或空值;而当data_only=False时,用save()函数保存工作簿后,xlsx文件单元格中的值会是公式,如果两种值都需要,则可以用Excel程序打开该文件并保存。

三、对工作表的操作

对工作表的操作以文件“tongjibiao.xlsx”为例。

1、显示工作表名称

print(book.sheetnames)

例如:

print(book1.sheetnames)

2、修改工作表名称

sheet.title = "newsheetname"

例如:

sheet2 = book1['Sheet']

sheet2.title = 'tongjibiao2'


3、新建工作表

创建工作表并插入到最后(默认):

sheet = book.create_sheet('sheetname')

创建工作表并插入到最前:

sheet = book.create_sheet(' sheetname ',0)

创建工作表并插入到正数第二:

sheet = book.create_sheet(' sheetname ',1)

创建工作表并插入到倒数第二:

sheet = book.create_sheet(' sheetname ',-1)

例如:

创建新工作表tongjibiao4并插入到最后(默认)

sheet4 = book1.create_sheet('tongjibiao4')

创建工作表tongjibiao1并插入到最前

sheet1 = book1.create_sheet('tongjibiao1',0)

创建工作表tongjibiao3并插入到倒数第二

sheet3 = book1.create_sheet('tongjibiao3',-1)

4、删除工作表

删除工作表方法一:book.remove(book['sheetname'])

删除工作表方法二:del book['sheetname']

例如:

删除工作表tongjibiao4

book1.remove(book1['tongjibiao4'])

删除工作表tongjibiao3

del book1['tongjibiao3']

5、复制工作表

获取当前活跃的工作表

source = book.active

复制工作表

target = book.copy_worksheet(source)

例如:

source = book1.active

target = book1.copy_worksheet(source)

四、对单元格的操作

对单元格的操作以文件“biao.xlsx”为例,原文件单元格内容如下:

1、读取行数和列数

print(sheet.max_row)

print(sheet.max_column)

2、读取单元格内容

print(sheet['D3'].value)


3、写入单元格内容

Sheet['E2'].value = '备注'



4、合并和拆分单元格

sheet.merge_cells('A1:E1)

合并的单元格也可以再拆分开:

sheet.unmerge_cells('A1:E1')


5、单元格计算(需保存文件后才能显示)

sheet['D7'] = '=sum(D3:D6)'

sheet['D8'] = '=average(D3:D6)'

6、设置单元格样式

单元格常见的样式设置包括:Font 字体、Side 边线、Border 边框、PatternFill 填充、Aignment 对齐。

设置单元格样式需要导入openpyxl.style模块:

from openpyxl.styles import PatternFill, Font, Alignment, Border, Side

字体:

font = Font(name='黑体', size=24, italic=True, color=colors.GREEN, bold=True)

sheet['A1'].font = font

连线和边框

side_type = Side(border_style='mediumDashDot',color='FF000000')

border = Border(left=side_type,

right=side_type,

top=side_type,

bottom=side_type,

diagonal=side_type,

diagonal_direction=30,

outline=side_type,

vertical=side_type,

horizontal=side_type

)

sheet['A7'].border = border

对齐

sheet['A1'].alignment=Alignment(horizontal='center',vertical='center')

填充

fill=PatternFill(fill_type=None,start_color='0000FF',end_color='000000')

sheet['E2'].fill = fill

Tags:

最近发表
标签列表