随笔 - 22, 文章 - 0, 评论 - 0, 阅读 - 3707
  博客园  :: 首页  :: 新随笔  :: 联系 :: 订阅 订阅  :: 管理
< 2025年3月 >
23 24 25 26 27 28 1
2 3 4 5 6 7 8
9 10 11 12 13 14 15
16 17 18 19 20 21 22
23 24 25 26 27 28 29
30 31 1 2 3 4 5

openpyxl模块

Posted on   生活旅行家  阅读(37)  评论(0编辑  收藏  举报

安装

pip install openpyxl

一、打开文件

创建文件

复制代码

from openpyxl import Workbook

# 实例化

wb = Workbook()

# 获取当前active sheet

sheet = wb.active

# 打印sheet表名

print(sheet.title)

# 修改sheet名称

sheet.title = "salary luffy"
#保存工作表

wb.save("new.xlsx")
复制代码

打开已有文件

from openpyxl import load_work_book

wb2 = load_workbook("文件名称.xlsx")

二、写数据

复制代码
#方式一:数据可以直接分配到单元格(可以输入公式)
sheet["C5"] = "张三"
sheet["D5"] = "理事"

#方式二:可以附加行,从第一列开始附加(从最下方空白处,最左边开始)(可以输入多行)
sheet.append(["aa","cc","bb"])

#方式三:Python类型会被自动转换
sheet['A3'] = datetime.datetime.now().strftime("%Y-%m-%d")
复制代码

三、选择表

wb = load_workbook("aaa.xlsx")

print(wb.sheetnames)
print(wb.get_sheet_names())    #作用同上
sheet = wb.get_sheet_by_name("sheet1")
print(sheet["b5"])    #打印B5

四、遍历表数据

复制代码
print(sheet["b5"].value)        #打印B5的值

for cell in sheet["b5:b10"]:
    print(cell[0].value)    #遍历单元格,打印B5到B10的单元格内容

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

#按行遍历,从第4行到第21行遍历

for row in sheet.iter_rows(min_row = 4,max_row = 21,max_col = 5):
  for cell in row:
    print(cell.value,end = ",")
  print()

#按列遍历

for column in sheet.columns:
  for cell in column:
    print(cell.value,end = ",")  #注意这里添加end参数,将默认的换行结尾改变为,号
  print()

#按列遍历,从第3列到第4列遍历

for column in sheet.iter_cols(min_col = 3,max_col = 4,min_row = 3,max_row = 20):
  for cell in column:
    print(cell.value,end = ",")
  print()
复制代码

 五、删除工作表

#方式一
wb.remove(sheet)
#方式二
del wb(sheet)

六、设置单元格样式

复制代码
from openpyxl.styles import Font,colors,Alignment    #需要导入的包

bold_itatic_24_font = Font(name="等线",size = 24,itatic = True,color = colors.RED,bold = True)    #声明样式,等线24号,红色字体,加粗
sheet['A1'].font = bold_itatic_font    #给单元格设置样式

sheet['B1'].alignment = Alignment(horizontal = 'center',vertical = 'center')    #设置对齐方式,垂直居中和水平居中,也可以设置right和left

sheet.row_dimensions[2].height = 40    #第2行行高
sheet.column_dimensions['C'].width = 30    #C列宽度
复制代码

 

相关博文:
阅读排行:
· TypeScript + Deepseek 打造卜卦网站:技术与玄学的结合
· Manus的开源复刻OpenManus初探
· AI 智能体引爆开源社区「GitHub 热点速览」
· 从HTTP原因短语缺失研究HTTP/2和HTTP/3的设计差异
· 三行代码完成国际化适配,妙~啊~
点击右上角即可分享
微信分享提示