Python_Openpyxl模块.Excel数据处理

Posted 丶极致

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了Python_Openpyxl模块.Excel数据处理相关的知识,希望对你有一定的参考价值。

Openpyxl模块是一个读写Excel文档的Python库,如果要处理更早格式的Excel文档,需要用到额外的库,openpyxl是一个比较综合的工具,能够同时读取和修改Excel文档。其他很多的与Excel相关的项目基本只支持读或者写Excel一种功能。下面将介绍Openpyxl模块的部分用法。

1. 安装Openpyxl模块

pip install openpyxl

2. 导入Openpyxl模块

 import openpyxl from Workbook

下面让我们来开始操作excel

3. 创建工作簿并保存

from openpyxl import Workbook

wb = Workbook() # 创建excel工作簿

# 若不创建工作表,工作簿中默认包含一个名为 sheet 的工作表

# 创建工作表
wb.create_sheet("富婆通讯录",0)  # 工作表名称  表位置(不指定则默认创建在最后)

wb.save("py_test.xlsx")    #设置保存文件名

4. 打开本地工作簿并新建工作表

# Date: 2021/12/12 10:36

from openpyxl import load_workbook

wb = load_workbook("py_test.xlsx") # 打开已有工作簿

sheet = wb.active   # 获取当前活动的worksheet

print(sheet.title)  # 打印工作表名
#  Sheet
print(sheet)
#  <Worksheet "Sheet">

wb.create_sheet("富婆通讯录",0)  # 创建新的工作表

wb.create_sheet("hello")    # 默认创建在最后

wb.save("py_test.xlsx")     # 保存

5. 写入数据

# Date: 2021/12/12 13:31
import datetime

from openpyxl import workbook,load_workbook

wb = load_workbook("py_test.xlsx")

sheet = wb.active
sheet.title = "写入数据"  # 修改工作表名

#   写入数据
sheet["a1"] = "第一次写入数据"
sheet["c1"] = datetime.datetime.now().strftime("%Y-%m-%d")  #添加时间
sheet.append(["按行添加数据","第二个","都三个","..."])

wb.save("py_test.xlsx")

6.遍历数据

# Date: 2021/12/12 13:45

from openpyxl import workbook,load_workbook,worksheet

wb = load_workbook("py_excel处理.xlsx")

print(wb.sheetnames)  # 打印所欲工作表名称
# print(wb.get_sheet_name())                    ['图书销售情况表', 'Sheet2', 'Sheet3']
# print(wb.get_sheet_by_name("图书销售情况表"))     <Worksheet "图书销售情况表">

#sheet = wb.get_sheet_by_name("图书销售情况表")
sheet = wb["图书销售情况表"]
print(sheet["b3"])          # <Cell '图书销售情况表'.B3>
print(sheet["b3"].value)    # 计算机类

#   获取指定列的切片数据
for cell in sheet["b3:e15"]:
    print(cell[0].value)

# 按行遍历
for row in sheet:       # 循环获取表数据
    for cell in row:    # 循环获取每个单元格数据
        print(cell.value,end="  ")
    print()

# 指定行列
for row in sheet.iter_rows(min_row=3,max_row=20,min_col=1,max_col=5):
    for cell in row:
        print(cell.value,end="  ")
    print()

7.表格样式

# Date: 2021/12/12 14:47

from openpyxl import load_workbook
from openpyxl.styles import Font,colors,Alignment,Border,Side      # 导入字体、颜色、对齐、边框

wb = load_workbook("py_excel处理.xlsx")
sheet = wb["图书销售情况表"]

# 声明样式
cell_style= Font(name="楷体",size=24,italic=True,color=colors.BLUE,bold=True) # 楷体 24号 倾斜 蓝色 加粗字体
# 设置边框样式
cell_border = Border(top=Side(border_style='double',color=colors.BLUE),  
            bottom=Side(border_style='double',color=colors.BLUE),
            left=Side(border_style='double',color=colors.BLUE),
            right=Side(border_style='double',color=colors.BLUE))
# 设置单元格样式
sheet["a1"].font = cell_style
# 设置单元格对齐方式
sheet["a1"].alignment = Alignment(horizontal="center",vertical="center")    # 水平居中、垂直居中
# 设置单元格行高列宽
sheet.row_dimensions[1].height = 80         # 第一行行高
sheet.column_dimensions["a"].width = 10     # 第a列列宽
# 设置单元格边框
sheet["a1"].border = cell_border

wb.save("py_excel处理.xlsx")  # 保存

8.补充

# 删除工作表的两种方式
del wb["sheetname"]
ws = wb["sheetname"]

附录

Workbook对象的部分属性:

.active 获取活动的Worksheet
.read_only 是否以read_only模式打开Excel文档
.encoding 文档的字符集编码
.properties 文档的元数据,如标题,创建者,创建日期等
.worksheets 以列表的形式返回所有的Worksheet

Workbook对象常用方法:

.get_sheet_names 获取所有表格的名称
.get_sheet_by_name 通过表格名称获取Worksheet对象
.get_active_sheet 获取活跃的表格
.remove_sheet 删除一个表格
.create_sheet 创建一个空的表格
.copy_workbook 在workbook内拷贝表格

Worksheet对象部分属性:
.title 表格标题
.dimensions 表格大小,指含有数据的表格大小
.max_row 表格的最大行
.min_row 表格的最小行
.max_column 表格的最大列
.min_column 表格的最小列
.rows 按行获取单元格
.column 按列获取单元格
.freeze_panes 冻结窗格
.values 按行获取表格内容
Worksheet对象常用方法:
.iter_rows 按行获取所有单元格
.iter_column 按列获取所有单元格
.merged_cells 合并多个单元格
.unmerge_cells 移除合并的单元格

对excel文档进行操作后切记进行保存,第一次写文章记录,多有不足,敬请大佬批评指正!!!

以上是关于Python_Openpyxl模块.Excel数据处理的主要内容,如果未能解决你的问题,请参考以下文章

Python_Openpyxl

数据报表之Excel操作模块

干货--Excel的表格数据的一般处理和常用python模块。

Python学习笔记-数据报表之Excel操作模块

Python中操作Excel最好用的模块是?

xlwt:python的写excel模块