首页 > 其他分享 >openpyxl Workbook

openpyxl Workbook

时间:2024-05-17 14:10:40浏览次数:10  
标签:sheet openpyxl 工作 workbook Workbook wb

Workbook 说明

Workbook 类是用于表示 Excel 工作簿的核心类。它允许我们创建、读取、编辑和保存 Excel 工作簿文件。

Workbook 导入

from openpyxl import Workbook

Workbook 初始化

from openpyxl import Workbook, load_workbook

# 创建一个新的Excel工作簿
wb = Workbook()
print(type(wb), wb)    # 输出: <class 'openpyxl.workbook.workbook.Workbook'> <openpyxl.workbook.workbook.Workbook object at 0x000002602AEB5A10>

# 加载现有的 Excel 文件
workbook = load_workbook(file_path)

# 保存工作簿到指定的文件名
wb.save("execl_test.xlsx")

# 关闭工作簿
wb.close()

Workbook 的属性

active

active 描述:当前活动的工作表。可以使用该属性读取和修改当前活动工作表中的数据,包括单元格的数值、公式、样式、名称、行高、列宽等。
active 返回值类型:openpyxl.worksheet.worksheet.Worksheet
from openpyxl import Workbook

# 创建一个新的Excel工作簿
wb = Workbook()

# 获取当前活动的工作表
ws = wb.active

print(type(ws))    # 输出: <class 'openpyxl.worksheet.worksheet.Worksheet'>
print(ws)          # 输出: <Worksheet "Sheet">
print(ws.title)    # 输出: Sheet
print(ws.values)   # 输出: <generator object Worksheet.values at 0x00000273669E8040>

# 保存工作簿到指定的文件名
wb.save("execl_test.xlsx")

# 关闭工作簿
wb.close()

encoding

encoding 描述:它表示工作簿的编码方式(encoding)。默认情况下,编码方式被设置为 UTF-8。
encoding 返回值类型:string (str)
from openpyxl import Workbook

# 创建一个新的Excel工作簿
wb = Workbook()

# 获取工作簿的编码格式
print(wb.encoding)  # 输出: utf-8

# 保存工作簿到指定的文件名
wb.save("execl_test.xlsx")

# 关闭工作簿
wb.close()

properties 

properties 描述:用于获取或设置工作簿的文档属性。通过这个属性,你可以访问并操作工作簿的元数据信息,比如标题、主题、作者、创建日期等。
properties 返回值类型: openpyxl.packaging.core.DocumentProperties
from openpyxl import Workbook

# 创建一个新的Excel工作簿
wb = Workbook()

# 获取文档属性对象
properties = wb.properties

# 获取文档属性对象中的属性值
print(properties.title)          # 输出: None
print(properties.creator)        # 输出: openpyxl
print(properties.created)        # 输出: 2024-05-15 03:19:47.365176

# 保存工作簿到指定的文件名
wb.save("execl_test.xlsx")

# 关闭工作簿
wb.close()

sheetnames

sheetnames 描述:返回一个包含工作簿中所有工作表名称的列表。
sheetnames 返回值类型:list
from openpyxl import Workbook

# 创建一个新的Excel工作簿
wb = Workbook()

print(type(wb.sheetnames), wb.sheetnames)   # 输出: <class 'list'> ['Sheet']

# 保存工作簿到指定的文件名
wb.save("execl_test.xlsx")

# 关闭工作簿
wb.close()

worksheets

worksheets 描述: 返回一个包含工作簿中所有工作表对象的列表。
worksheets 返回值类型:list 
from openpyxl import Workbook

# 创建一个新的Excel工作簿
wb = Workbook()

print(type(wb.worksheets), wb.worksheets)   # 输出: <class 'list'> [<Worksheet "Sheet">]

# 保存工作簿到指定的文件名
wb.save("execl_test.xlsx")

# 关闭工作簿
wb.close()

Workbook 的方法

create_sheet()

create_sheet() 描述: 用于在工作簿中创建一个新的工作表,并返回新创建的工作表对象。
create_sheet(title=None, index=None):
  title (可选): 新工作表的标题,默认为 SheetX,其中 X 是一个数字。
  index (可选): 新工作表的索引位置,默认为最后位置。索引从0开始,表示工作簿的第一个位置。
from openpyxl import Workbook

# 创建一个新的Excel工作簿对象
wb = Workbook()

# 在最后一个位置创建一个名为"DataSheet"的新工作表
ws = wb.create_sheet("DataSheet")

# 在第一个位置创建一个名为"Summary"的新工作表
ws1 = wb.create_sheet("Summary", 0)

# 在指定的索引位置创建多个新工作表
ws3 = wb.create_sheet("Mysheet1", 0)
ws4 = wb.create_sheet("Mysheet2", 1)
ws5 = wb.create_sheet("Mysheet3", 1)

# 在倒数第二个位置创建一个名为"Mysheet"的新工作表
ws6 = wb.create_sheet("Mysheet", -1)

print(type(ws))       # 输出: <class 'openpyxl.worksheet.worksheet.Worksheet'>
print(ws)             # 输出: <Worksheet "DataSheet">
print(ws.title)       # 输出: DataSheet

# 保存工作簿到指定的文件名
wb.save("execl_test.xlsx")

# 关闭工作簿
wb.close()

remove(worksheet)

remove(worksheet) 描述: 用于从工作簿中删除指定的工作表。
remove(worksheet): 
  worksheet: 要删除的工作表对象。
from openpyxl import Workbook

# 创建工作簿对象
wb = Workbook()

# 创建工作表
ws1 = wb.create_sheet("Sheet1")
ws2 = wb.create_sheet("Sheet2")

# 删除工作表
wb.remove(ws1)

# 保存工作簿到指定的文件名
wb.save("execl_test.xlsx")

# 关闭工作簿
wb.close()

save(filename) 

save(filename) 描述: 通过这个方法,可以将对工作簿内容的任何更改持久化到硬盘上的文件中。 
save(filename) 用法:
  filename: 要保存到的文件的路径和名称。对已存在的文件会进行覆盖保存。
from openpyxl import Workbook

# 创建一个新的Excel工作簿对象
wb = Workbook()

# 保存工作簿到指定的文件名
wb.save("execl_test.xlsx")

# 关闭工作簿
wb.close()

close()

close() 描述: 关闭工作簿。
from openpyxl import Workbook

# 创建工作簿对象
wb = Workbook()

# 保存工作簿到指定的文件名
wb.save("execl_test.xlsx")

# 关闭工作簿
wb.close()

copy_worksheet()

copy_worksheet(): 方法用于在一个工作簿中复制一个工作表到一个新的工作表对象。默认在末尾位置。
copy_worksheet(source): 要被复制的源工作表对象。在openpyxl库中,通常表示为一个Worksheet对象。返回一个新的工作表对象,该对象是源工作表的副本,包含原始工作表的所有数据、格式和设置。
from openpyxl import load_workbook

workbook = load_workbook('execl_test.xlsx')

print(type(workbook.sheetnames), workbook.sheetnames)    # 输出: <class 'list'> ['Sheet1', 'Mysheet2', 'Summary', 'Mysheet1', 'DataSheet']

# 获取要复制的源工作表对象
source = workbook[workbook.sheetnames[0]]

# 复制工作表到新的工作表对象
target = workbook.copy_worksheet(source)
print(target.title)    # 输出:Sheet1 Copy

print(type(workbook.sheetnames), workbook.sheetnames)    # 输出: <class 'list'> ['Sheet1', 'Mysheet2', 'Summary', 'Mysheet1', 'DataSheet', 'Sheet1 Copy']

# 保存并关闭工作簿
workbook.save('execl_test.xlsx')
workbook.close()

move_sheet()

move_sheet(): 方法用于在工作簿中移动工作表的位置。
move_sheet(sheet, offset=0):
  sheet:要移动的工作表对象。
  offset:移动的偏移量。正数表示向右移动,负数表示向左移动。默认为0,即不移动。超出的位置将自动移动到左右两侧。
from openpyxl import load_workbook

workbook = load_workbook('execl_test.xlsx')

print(type(workbook.sheetnames), workbook.sheetnames)    # 输出: <class 'list'> ['Summary', 'Sheet1', 'Mysheet2', 'Mysheet1', 'DataSheet', 'Sheet1 Copy']

# 获取要移动的工作表对象
sheet_to_move = workbook['Summary']

# 将工作表向右移动最后一个位置。超出的位置将自动移动到最右侧
workbook.move_sheet(sheet_to_move, offset=100)
print(type(workbook.sheetnames), workbook.sheetnames)    # 输出: <class 'list'> ['Sheet1', 'Mysheet2', 'Mysheet1', 'DataSheet', 'Sheet1 Copy', 'Summary']

# 将工作表向左移动8个位置
workbook.move_sheet(sheet_to_move, offset=-15)
print(type(workbook.sheetnames), workbook.sheetnames)    # 输出: <class 'list'> ['Summary', 'Sheet1', 'Mysheet2', 'Mysheet1', 'DataSheet', 'Sheet1 Copy']

# 保存并关闭工作簿
workbook.save('execl_test.xlsx')
workbook.close()

load_workbook()

load_workbook(): 用于打开一个 Excel 文件并返回一个Workbook对象,可以使用这个对象来操作 Excel 文件中的工作表数据。

load_workbook(filename, read_only=False, keep_vba=KEEP_VBA, data_only=False, keep_links=True):
  filename (str): Excel 文件的路径。
  read_only (bool, optional): 如果设置为 True,则以只读模式加载文件,不会保存对文件的更改(默认为 False)。
  keep_vba (bool, optional): 控制是否保留 VBA 宏 (默认为 KEEP_VBA)。
  data_only (bool, optional): 如果设置为 True,则只保留单元格中的值,公式将被忽略 (默认为 False)。
  keep_links (bool, optional): 控制是否保留工作簿之间的链接 (默认为 True)。

返回值:返回一个Workbook对象
from openpyxl import load_workbook

# 加载 Excel 文件
filename = "example.xlsx"
workbook = load_workbook(filename)

# 获取工作表对象
sheet = workbook.active

# 输出第一个单元格的值
print(sheet['A1'].value)

# 保存更新后的数据
workbook.save(filename)

# 关闭工作簿
workbook.close()

参考文档

https://openpyxl.readthedocs.io/en/stable/#/

标签:sheet,openpyxl,工作,workbook,Workbook,wb
From: https://www.cnblogs.com/wangguishe/p/18193330

相关文章

  • openpyxl常用操作
    创建工作簿fromopenpyxlimportWorkbookout_wk=Workbook() 获取当前激活的sheet(常用于新建的时候获取第一个sheet)out_sheet=out_wk.active 按行写入fordataindata_list:out_sheet.append(data); 创建新的sheetout_sheet=out_wk.c......
  • Python中有很多库可以操作Excel,像xlsxwriter、openpyxl、pandas、xlwings等
    Python中确实有多个库可以用于操作Excel文件,包括但不限于xlsxwriter、openpyxl、pandas和xlwings。以下是这些库的简要介绍和它们各自的优点:xlsxwriter:优点:专门用于创建新的.xlsx文件。提供了丰富的功能来创建复杂的Excel文档,包括图表、图片、自动筛选等。性能相对较......
  • 如何使用XSSFWorkbook读取文本薄?
    【版权声明】未经博主同意,谢绝转载!(请尊重原创,博主保留追究权)https://www.cnblogs.com/cnb-yuchen/p/18146625出自【进步*于辰的博客】1、文件兼容类型。//兼容文件后缀列表privatestaticfinalStringFILE_TYPE;static{FILE_TYPE=".xls/.xlsx/.csv";}2、文......
  • java使用Workbook workbook = new XSSFWorkbook(inputStream);导出数据频繁GC
    由于xlsx底层使用xml存储,占用内存会比较大,官方也意识到这个问题,在3.8版本之后,提供了SXSSFWorkbook来优化写性能原来代码Workbookworkbook= newXSSFWorkbook(inputStream);优化后代码Workbookworkbook= newSXSSFWorkbook(newXSSFWorkbook(inputStream));此处有坑,请往......
  • 关于openpyxl
    文档来源于openpyxl官方文档:https://openpyxl.readthedocs.io/en/stable/tutorial.htmlpython内封装了很多强大的功能库,包括对office办公软件的许多操作,相比较于对word的操作库来说,python对excel表格的操作库要友好很多,其中广为人知的当属于pandas和openpyxl。我在对excel表操作......
  • openpyxl解析xlsx文件示例
    #coding=utf-8importopenpyxldefread_sheet(book_name,sheet_name):returnopenpyxl.load_workbook(book_name)[sheet_name]defget_pai2times(sheet,pai_col,time_col):records=dict()forrowinsheet.iter_rows(min_row=2,max_row=sheet.max......
  • vue中导出excel表格, Workbook 导出的表格的单元格格式设置为文本
    <template><button@click="exportExcel">导出Excel</button></template><script>importXLSXfrom'xlsx';exportdefault{methods:{exportExcel(){//创建Workbook和工作表constworkbook=......
  • Python+openpyxl 拆分Excel合并的单元格
    图片数据是举例子。在实际使用中,从需求网页上下载的生产资料是带有合并单元格的,但在处理的时候需要拆分开,不然不好操作。使用openpyxl可以实现操作如果没有安装openpyxl库,首先安装openpyxl在命令行执行pipinstallopenpyxl点击查看代码importopenpyxlpath=r"test.......
  • Python-Openpyxl使用教程
    在数据处理和报表生成过程中,Excel是一个经常使用的工具。Python中的openpyxl库可以让您通过编程方式读取、写入和操作Excel文件,从而实现自动化的数据处理和报表生成。本文将介绍openpyxl库的基本用法和常见操作,帮助您快速上手使用Python处理Excel文件。安装openpyxl首先,您需要......
  • 【10】Python3之使用openpyxl,操纵表格
    使用openpyxl,读取Excel文件fromopenpyxlimportload_workbook#加载工作簿,后面写Excel的路径wb=load_workbook(r"C:\Users\以权天下\Desktop\月光.xlsx")#选择活动工作表或特定工作表wb.activesheet=wb['2024']#2024是表名Excel_data=sheet['A2'].value#A2是单元格......