Python与openpyxl的不解之缘【1】

目录

1. Excel文档基本定义

2. 安装 openpyxl 模块

3.读取已存在的Excel表

4.新建工作薄

5.遍历工作表内容

6.合并单元格

7.插入,删除行和列

8.移动数据表

9.往表中写入数据 


在进入工作期间,我碰到了一些开发任务,是关于Python与Excel之间的操作,比如读取,写入。接下来,我将一边学习,一边做总结。Excel 是 Windows 环境下流行的、强大的电子表格应用。openpyxl 模块让 Python 程序能读取和修改 Excel 电子表格文件。

1. Excel文档基本定义

  • 工作簿(workbook): 一个 Excel 电子表格文档;
  • 工作表(sheet): 每个工作簿可以包含多个表, 如: sheet1, sheet2等;
  • 活动表(active sheet): 用户当前查看的表;
  • 列(column): 列地址是从 A 开始的;
  • 行(row): 行地址是从 1 开始的;
  • 单元格(cell): 特定行和列的方格;




2. 安装 openpyxl 模块

Python 没有自带 openpyxl,所以必须安装。

pip3 install openpyxL

3.读取已存在的Excel表

from openpyxl import load_workbook

#打开已存在的工作薄
wb = load_workbook('123.xlsx')
#新建页签--工作表
wb.create_sheet('SML')
#指定一个工作表
ws = wb['SML']
#指定活跃的一个表---关闭工作薄时处于哪个工作表
ws = wb.active
#读取指定单元格的数据
print(ws['B4'].value)

wb.save('123.xlsx)

这里要注意的是:运行时,记得关闭工作薄

4.新建工作薄

from openpyxl import Workbook

wb = Workbook()
#默认的是第一张工作表
ws.active()
#修改工作表的表名
ws.title('qq')
#添加数据:第一行从左向右依次添加
ws.append([123,234,456,567])

ws.save('new_excel.xlsx')

5.遍历工作表内容

from openpyxl.utils import get_column_letter

wb = load_workbook('new.xlsx')
ws = ws.active

# 列col,1代表的就是A.....
for row in range(1,5):
    for col in range(1,6):
        char = get_column_letter(col)
        print(ws[char + str(row)].value) #char + str(row)相当于A1,B1,C1....

6.合并单元格

from openpyxl import load_workbook

wb = load_workbook('new.xlsx')
ws = wb.active
#合并单元格(对角线原则区域)
ws.merge_cells('A1:B2')

wb.save('new.xlsx')

7.插入,删除行和列

from openpyxl import load_workbook

wb = load_workbook('123.xlsx')
ws = wb.active

#插入单行,单列
ws.insert_rows(3)
ws.insert_cols(5)

#插入多行,多列
ws.insert_rows(idx=3,amount=4)
ws.insert_cols(idx=4,amount=6)

#删除
ws.delete_cols(2)
ws.delete_cows(3)

wb.save('123.xlsx')

8.移动数据表

move_range('A1:C5',row = 2,col = 2)      整体向下移动

9.往表中写入数据 

from openpyxl import load_workbook
from openpyxl.utils import get_column_letter

data = [
   {'name': 小米,
    'age': 45,
    'tall': 178,
   },
   {'name': 小米,
    'age': 45,
    'tall': 178,
   },
    {'name': 小米,
    'age': 45,
    'tall': 178,
   }]

wb = load_workbook('123.xlsx')
ws = wb.active

title = ['姓名','年龄','升高']
ws.append(title)
for person in data:
    ws.append(list(person.values())
for col in range(2,5):
    char = get_column_letter(col)
    ws[char + '7'] = f'=AVERAGE({char + '2'}:{char + '5'}

wb.save('123.xlsx')

  • 1
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值