openpyxl模块

引入#

from openpyxl import Workbook, load_workbook
from openpyxl.styles import Font, colors, Alignment

openpyxl模块#

# 创建新文件
wb = Workbook()      # 创建一个excel文件
sheet = wb.active    # 获取当前sheet表

sheet.title = "云朵"  # 设置sheet标题
sheet["C6"] = 1      # 给C6这个单元格写数据
sheet.append([1, 2, 3])  # 会从该sheet最下面空白行第一行,最左边开始,写入行数据

wb.save("我的excel.xlsx")  # 保存该文件到当前目录
# 加载已有文件
wb = load_workbook("我的excel.xlsx")
sheet = wb.active
sheet.title = "云朵2"
wb.save("我的excel.xlsx")
# 案例
# 获取sheet
wb = load_workbook('测试数据-表格.xlsx')
sheet = wb.active

# 声明字体样式,italic表示斜体
myfont = Font(name='宋体', size=30, italic=True, color=colors.BLUE, bold=True)

# 设置
sheet['A2'].font = myfont  # 设置字体
sheet['B3'].alignment = Alignment(horizontal='center', vertical='center')  # 设置对齐方式,还有left,right
sheet.row_dimensions[2].height = 80  # 设置第4行高度
sheet.column_dimensions['C'].width = 100  # 设置C列宽度

# 保存
wb.save('测试数据-表格.xlsx')

花式遍历excel数据#

# 打开excel文件
wb = load_workbook("测试数据-表格.xlsx")

# 获取sheet列表
print(wb.sheetnames)  # ['Sheet1', 'Sheet2']

# 获取指定表
sheet = wb['Sheet1']

# 输出B2的内容
print(sheet['B2'].value)  # 张艺卓

# 获取 行/列/块
print(sheet['A2':'C2'])  # ((<Cell 'Sheet1'.A2>, <Cell 'Sheet1'.B2>, <Cell 'Sheet1'.C2>),)
print(sheet['A1':'A5'])  # ((<Cell 'Sheet1'.A1>,), (<Cell 'Sheet1'.A2>,), (<Cell 'Sheet1'.A3>,), (<Cell 'Sheet1'.A4>,), (<Cell 'Sheet1'.A5>,))
print(sheet['A1':'B2'])  # ((<Cell 'Sheet1'.A1>, <Cell 'Sheet1'.B1>), (<Cell 'Sheet1'.A2>, <Cell 'Sheet1'.B2>))

print()

# 循环遍历块内容
for row in sheet['A1':'B2']:
    for cell in row:
        print(cell.value)

print()

# 循环Sheet1整个表
for row in sheet:
    for cell in row:
        print(cell.value)

print()

# 拿到每一行
for row in sheet.rows:
    print(row)

print()

# 拿到每一列
for column in sheet.columns:
    print(column)

print()

# 按行循环,循环2-4行,每行内容是2-3列内容
for row in sheet.iter_rows(min_row=2, max_row=4, min_col=2, max_col=3):
    for cell in row:
        print(cell.value, end=" ")
    print()

print()

# 按列循环,循环2-3列
for column in sheet.iter_cols(min_col=2, max_col=3):
    for cell in column:
        print(cell.value, end=" ")
    print()

删除表#

wb = load_workbook("测试数据-表格.xlsx")

print(wb.sheetnames)  # ['Sheet1', 'Sheet2']

sheet = wb['Sheet1']

# 删除sheet表
wb.remove(sheet)  # ['Sheet2']

print(wb.sheetnames)

# 保存之后才有效
wb.save("测试数据-表格.xlsx")

作者:cloud-2-jane

出处:https://www.cnblogs.com/cloud-2-jane/articles/18558913

版权:本作品采用「署名-非商业性使用-相同方式共享 4.0 国际」许可协议进行许可。

posted @   一只大学生  阅读(7)  评论(0编辑  收藏  举报
编辑推荐:
· 10年+ .NET Coder 心语,封装的思维:从隐藏、稳定开始理解其本质意义
· .NET Core 中如何实现缓存的预热?
· 从 HTTP 原因短语缺失研究 HTTP/2 和 HTTP/3 的设计差异
· AI与.NET技术实操系列:向量存储与相似性搜索在 .NET 中的实现
· 基于Microsoft.Extensions.AI核心库实现RAG应用
阅读排行:
· 10年+ .NET Coder 心语 ── 封装的思维:从隐藏、稳定开始理解其本质意义
· 地球OL攻略 —— 某应届生求职总结
· 提示词工程——AI应用必不可少的技术
· Open-Sora 2.0 重磅开源!
· 周边上新:园子的第一款马克杯温暖上架
more_horiz
keyboard_arrow_up dark_mode palette
选择主题
menu
点击右上角即可分享
微信分享提示