使用 Openpyxl 操作 Excel 文件详解

打印 上一主题 下一主题

主题 865|帖子 865|积分 2595


openpyxl 是一个用于在 Python 中读取和写入 Excel 文件的精良库。
它支持 .xlsx 和 .xlsm 格式,非常恰当在 Ubuntu 系统上进行 Excel 数据处置惩罚和自动化操作。
本篇博客将介绍一些常用的 openpyxl 下令。
安装

安装Python3

首先,你必要安装 openpyxl 和 Python。在 Ubuntu 上,可以通过以下下令安装:
  1. sudo apt install python3
复制代码
安装 openpyxl

  1. pip3 install openpyxl
复制代码

根本操作

1. 引入

  1. from openpyxl import Workbook # 新建文件的引入
  2. from openpyxl import load_workbook # 加载已存在文件的引入
复制代码

2. 创建工作簿和工作表

  1. wb = Workbook() # 创建一个新的工作簿
  2. ws = wb.active # 获取活动工作表
  3. wb.create_sheet("Sheet2") # 创建一个新的工作表并命名
  4. ws.title = "NewSheet" # 修改工作表名
复制代码

3. 写入数据

  1. ws['A1'] = 'Hello, World!'
  2. ws['B1'] = 42
  3. ws['C1'] = 3.14
  4. cell = ws.cell(row=1, column=1, value="New Value")
复制代码

4. 生存工作簿

  1. wb.save('example.xlsx')
复制代码

5. 加载已存在的Excel

  1. wb = load_workbook('example.xlsx')
  2. ws = wb.active
复制代码

6. 读取单元格的值

  1. cell_a1 = ws['A1'].value
  2. cell_b1 = ws['B1'].value
  3. cell_c1 = ws['C1'].value
  4. print(f"A1: {cell_a1}, B1: {cell_b1}, C1: {cell_c1}")
复制代码

7. 选择工作表

  1. ws1 = wb.worksheets[0] # 通过索引选择工作表
  2. ws2 = wb["Sheet2"] # 通过名称选择工作表
复制代码

样式和格式化

1. 引入

  1. from openpyxl.styles import Font, Alignment # 样式操作的引入
复制代码

2. 设置字体

  1. font = Font(name='Arial', size=14, bold=True, italic=False)
  2. ws['A1'].font = font
复制代码

3. 设置边框

  1. border = Border(left=Side(border_style='thin'),
  2.                 right=Side(border_style='thin'),
  3.                 top=Side(border_style='thin'),
  4.                 bottom=Side(border_style='thin'))
  5. ws['A1'].border = border
复制代码

4. 添补

  1. fill = PatternFill(start_color="FF0000", end_color="FF0000", fill_type="solid")
  2. ws['A1'].fill = fill
复制代码

5. 设置数字格式

  1. ws['B1'].number_format = '0.00%'   # 百分比格式
  2. ws['C1'].number_format = 'YYYY-MM-DD'  # 日期格式
复制代码

6. 数据验证

  1. from openpyxl.worksheet.datavalidation import DataValidation
  2. dv = DataValidation(type="list", formula1='"Apple,Banana,Cherry"', allow_blank=True) # 创建数据验证对象
  3. ws.add_data_validation(dv)
  4. dv.add('A1') # 将数据验证应用到单元格
复制代码

7. 公式操作

可以在单元格中插入公式:
  1. ws['D1'] = "=SUM(A1:A3)"
复制代码

性能优化

1. read_only/write_only

对于大的 Excel 文件,可以使用read_only来进步读取效率, 使用 write_only 来优化写入性能
  1. from openpyxl import load_workbook
  2. wb = load_workbook('example.xlsx', read_only=True) # 使用只读模式加载工作簿
复制代码

  1. from openpyxl import Workbook
  2. wb = Workbook(write_only=True) # 使用写入模式创建工作簿
  3. ws = wb.create_sheet()
复制代码

2. 遍历单元格

可以使用 .rows 和 .columns 遍历工作表中的行和列:
  1. for row in ws.iter_rows(min_row=1, max_row=5, min_col=1, max_col=3):
  2.     for cell in row:
  3.         print(cell.value, end=" ")
复制代码
免责声明:如果侵犯了您的权益,请联系站长,我们会及时删除侵权内容,谢谢合作!更多信息从访问主页:qidao123.com:ToB企服之家,中国第一个企服评测及商务社交产业平台。
回复

使用道具 举报

0 个回复

倒序浏览

快速回复

您需要登录后才可以回帖 登录 or 立即注册

本版积分规则

不到断气不罢休

金牌会员
这个人很懒什么都没写!

标签云

快速回复 返回顶部 返回列表