当前位置:   article > 正文

python——openpyxl模块_openpyxl 覆盖写入

openpyxl 覆盖写入

介绍

openpyxl 是一个 Python 库,用于读/写 Excel 2010 xlsx/xlsm/xltx/xltm 文件。

它诞生于缺乏现有的库,可以从Python本地读取/写入 Office Open XML 格式。

安装

使用 pip 安装 openpyxl

pip install openpyxl
  • 1

官方文档

一、创建文件

1.创建新工作表

#只需导入类:Workbook
from openpyxl import Workbook
wb = Workbook()

 # 当前激活的工作表
ws = wb.active


#创建新工作表:Workbook.create_sheet()
ws1 = wb.create_sheet("Mysheet") # insert at the end (default)
ws2 = wb.create_sheet("Mysheet", 0) # insert at first position
ws3 = wb.create_sheet("Mysheet", -1) # insert at the penultimate position
  • 1
  • 2
  • 3
  • 4
  • 5
  • 6
  • 7
  • 8
  • 9
  • 10
  • 11
  • 12

注意:在内存中创建工作表时,它不包含任何单元格。他们是 首次访问时创建。

2.更改工作表名称

工作表在创建时会自动为其命名。 它们按顺序编号(表、表1、表2等)。 您可以随时使用属性更改此名称:Worksheet.title

ws.title = "New Title"
  • 1

为工作表命名后,可以将其作为工作簿的键:

ws3 = wb["New Title"]
  • 1

3.查看工作表的名称

可以使用属性查看工作簿的所有工作表的名称Workbook.sheetname

print(wb.sheetnames)
['Sheet2', 'New Title', 'Sheet1']
  • 1
  • 2

可以循环浏览工作表

 for sheet in wb:
	print(sheet.title)
  • 1
  • 2

4.创建工作表的副本

可以在单个工作簿中创建工作表的副本:

Workbook.copy_worksheet()方法:

source = wb.active
target = wb.copy_worksheet(source)
  • 1
  • 2

注意:

  • 仅单元格(包括值、样式、超链接和注释)和 某些工作表属性(包括尺寸、格式和 属性)被复制。所有其他工作簿/工作表属性 不被复制 - 例如图像、图表。
  • 您也不能在工作簿之间复制工作表。您无法复制 工作簿以只读或只写模式打开时为工作表。

二、读取数据

1.读取所有数据

import openpyxl

# 打开excel
excel = openpyxl.load_workbook('apis.xlsx')  # 有路径应带上路径
# 使用指定工作表
sheet = excel.active  # 当前激活的工作表
# sheet = excel.get_sheet_by_name('Sheet1')
# 读取所有数据
print(list(sheet.values))  # sheet.values 生成器
print(sheet.max_column)  # 最大列数
print(sheet.max_row)  # 最大行数
  • 1
  • 2
  • 3
  • 4
  • 5
  • 6
  • 7
  • 8
  • 9
  • 10
  • 11

2.按行读取

# 按行读取
for row in sheet.iter_rows(min_row=1, min_col=1, max_col=3, max_row=3): 
    print(row)
# 读取标题行
for row in sheet.iter_rows(max_row=1):
    title_row = [cell.value for cell in row]
print(title_row)
# 读取标题行以外数据
for row in sheet.iter_rows(min_row=2):
    row_data = [cell.value for cell in row]
    print(row_data)
  • 1
  • 2
  • 3
  • 4
  • 5
  • 6
  • 7
  • 8
  • 9
  • 10
  • 11

3.读取单元格数据

# 读取单元格数据
print(sheet['A1'].value)

print(sheet.cell(1,1).value) 
  • 1
  • 2
  • 3
  • 4

二、写入文件

1.写入单元格

# 写入单元格
sheet['F2'] = 'PASS'
result_col = title_row.index('result')+1  # 'result'所在的列号
sheet.cell(3, result_col).value = 'PASS'
  • 1
  • 2
  • 3
  • 4

2.整行写入


# 整行写入
new_row = ['post-xml接口', 'post', 'https://httpbin.org/post']
sheet.append(new_row)

  • 1
  • 2
  • 3
  • 4
  • 5

3.保存文件

保存工作簿的最简单和最安全的方法是使用对象的方法:Workbook.save()Workbook

# 保存文件,也可覆盖原文件
wb = Workbook()
wb.save('balances.xlsx')
#此操作将覆盖现有文件,而不会发出警告。
  • 1
  • 2
  • 3
  • 4

二、常用用法

1.编写工作簿

 from openpyxl import Workbook
 from openpyxl.utils import get_column_letter

wb = Workbook()

dest_filename = 'empty_book.xlsx'

 # 当前激活的工作表
ws1 = wb.active
#为工作表命名
ws1.title = "range names"

 for row in range(1, 40):
    ws1.append(range(600))

#创建工作表2
 ws2 = wb.create_sheet(title="Pi")

 ws2['F5'] = 3.14

ws3 = wb.create_sheet(title="Data")
 for row in range(10, 20):
	 for col in range(27, 54):
        _ = ws3.cell(column=col, row=row, value="{0}".format(get_column_letter(col)))

 print(ws3['AA10'].value)

#保存文件
wb.save(filename = dest_filename)
  • 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

2.合并/取消合并单元格

合并单元格时,除左上角单元格外的所有单元格都将从 工作表。为了携带合并单元格的边界信息,边界单元格的 合并的单元格被创建为始终具有值 None 的合并单元格。

 from openpyxl.workbook import Workbook

 wb = Workbook()
 ws = wb.active

 ws.merge_cells('A2:D2')
ws.unmerge_cells('A2:D2')

 # or equivalently
 ws.merge_cells(start_row=2, start_column=1, end_row=4, end_column=4)
 ws.unmerge_cells(start_row=2, start_column=1, end_row=4, end_column=4)
  • 1
  • 2
  • 3
  • 4
  • 5
  • 6
  • 7
  • 8
  • 9
  • 10
  • 11

(非作者允许,严禁转载)

声明:本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有侵权的内容,请联系我们。转载请注明出处:【wpsshop博客】
推荐阅读
相关标签
  

闽ICP备14008679号