最新国产好看的视频,伊人天堂AV在线,国产Aaaaaa视频,蜜臀视频在线观看一区,人妻av色图,密臀久久久精品影片,青青视频免费观看毛片,久草在线观看视,国产三级精品色情在线

Python使用openpyxl讀取Excel的操作詳解

 更新時(shí)間:2025年07月20日 10:43:04   作者:魚丸丶粗面  
本文介紹了使用Python的openpyxl庫進(jìn)行Excel文件的創(chuàng)建、讀寫、數(shù)據(jù)操作、工作簿與工作表管理,包括創(chuàng)建工作簿、加載工作簿、操作Sheet、追加數(shù)據(jù)、查詢與修改單元格等內(nèi)容,需要的朋友可以參考下

1 概述

1.1 圖示

1.2 安裝第三方庫

pip install openpyxl

2 工作簿 workbook

2.1 創(chuàng)建:Workbook()

import openpyxl


class Excel(object):
    def __init__(self):
        pass

    def create_workbook(self, filename):
        """
        創(chuàng)建工作簿對象:workbook
        :param filename: 文件名(相對路徑 或 絕對路徑)
        :return:
        """
        # 1.聲明 工作簿 對象
        workbook = openpyxl.Workbook()

        # 2.保存 工作簿(若已存在,則覆蓋)
        workbook.save(filename)


if __name__ == '__main__':
    test = Excel()
    # C:\Users\Administrator\Desktop\Temp\1.xlsx
    test.create_workbook('1.xlsx')

2.2 常用屬性:load_workbook()

import openpyxl


class Excel(object):
    def __init__(self):
        pass

    def load_workbook(self, filename):
        # 1.獲取工作簿對象(獲取屬性前,先要加載工作簿)
        workbook = openpyxl.load_workbook(filename)

        # 2.查看工作簿支持的方法和屬性
        # print(help(workbook))

        # 3.常用的屬性
        print(f'active: {workbook.active}')  # 當(dāng)前活動的 sheet 頁
        print(f'read_only: {workbook.read_only}')  # 是否以只讀方式打開
        print(f'encoding: {workbook.encoding}')  # 編碼
        print(f'properties: {workbook.properties}')  # 屬性類,如:標(biāo)題、作者、創(chuàng)建日期 等
        # 單個(gè)的屬性信息,可通過下列形式 "." 出來
        print(f'title: {workbook.properties.title}')  # 標(biāo)題
        print(f'creator: {workbook.properties.creator}')  # 作者
        print(f'created: {workbook.properties.created}')  # 創(chuàng)建日期


if __name__ == '__main__':
    test = Excel()
    # C:\Users\Administrator\Desktop\Temp\1.xlsx
    test.load_workbook('1.xlsx')

2.3 獲取 sheet

import openpyxl


class Excel(object):
    def __init__(self, filename):
        self.workbook = openpyxl.load_workbook(filename)

    def get_sheets(self):
        # 1.獲取 sheet 列表
        print(self.workbook.sheetnames)  # 如:['Sheet', 'Sheet1']
        print(self.workbook.worksheets)  # 如:[<Worksheet "Sheet">, <Worksheet "Sheet1">]
        # print(self.workbook.get_sheet_names())  # deprecated function 已棄用

        # 2.獲取單個(gè) sheet
        print('------------')
        print(self.workbook['Sheet'])  # 根據(jù)名稱
        print(self.workbook.sheetnames[0])  # 根據(jù)下標(biāo),如:Sheet
        print(self.workbook.worksheets[0])  # 根據(jù)下標(biāo),如:<Worksheet "Sheet">


if __name__ == '__main__':
    test = Excel('1.xlsx')
    # C:\Users\Administrator\Desktop\Temp\1.xlsx
    test.get_sheets()

2.4 創(chuàng)建 sheet

import openpyxl


class Excel(object):
    def __init__(self, filename):
        self.workbook = openpyxl.load_workbook(filename)
        self.filename = filename

    def create_sheet(self):
        # 1.末尾追加
        self.workbook.create_sheet('Sheet3')

        # 2.指定位置添加(index 從 0 開始,默認(rèn)末尾)
        self.workbook.create_sheet('Sheet4', 0)

        # 3.注意:若 Sheet 已存在,會默認(rèn)在名稱后面追加數(shù)字,如:Sheet31、Sheet32
        self.workbook.create_sheet('Sheet3')

        # 4.保存(只有保存后,才會生效哦)
        self.workbook.save(self.filename)


if __name__ == '__main__':
    test = Excel('1.xlsx')
    # C:\Users\Administrator\Desktop\Temp\1.xlsx
    test.create_sheet()

2.5 復(fù)制 sheet

import openpyxl


class Excel(object):
    def __init__(self, filename):
        self.workbook = openpyxl.load_workbook(filename)
        self.filename = filename

    def copy_sheet(self):
        # 1.獲取 sheet 對象
        sheet = self.workbook['Sheet']

        # 2.復(fù)制 sheet(默認(rèn)名稱 + copy,如:Sheet Copy)
        self.workbook.copy_worksheet(sheet)

        # 3.保存(只有保存后,才會生效哦)
        self.workbook.save(self.filename)


if __name__ == '__main__':
    test = Excel('1.xlsx')
    # C:\Users\Administrator\Desktop\Temp\1.xlsx
    test.copy_sheet()

2.6 刪除 sheet

import openpyxl


class Excel(object):
    def __init__(self, filename):
        self.workbook = openpyxl.load_workbook(filename)
        self.filename = filename

    def delete_sheet(self):
        # 1.刪除 sheet
        del self.workbook['Sheet Copy']

        # 2.保存后生效
        self.workbook.save(self.filename)


if __name__ == '__main__':
    test = Excel('1.xlsx')
    # C:\Users\Administrator\Desktop\Temp\1.xlsx
    test.delete_sheet()

2.7 移動 sheet

import openpyxl


class Excel(object):
    def __init__(self, filename):
        self.workbook = openpyxl.load_workbook(filename)
        self.filename = filename

    def move_sheet(self):
        # 1.移動 sheet(負(fù)數(shù)=向左移動、正數(shù)=向右移動、數(shù)值=移動位置的個(gè)數(shù))
        self.workbook.move_sheet('Sheet', -1)

        # 2.保存后生效
        self.workbook.save(self.filename)


if __name__ == '__main__':
    test = Excel('1.xlsx')
    # C:\Users\Administrator\Desktop\Temp\1.xlsx
    test.move_sheet()

2.8 重命名 Sheet

import openpyxl


class Excel(object):
    def __init__(self, filename):
        self.workbook = openpyxl.load_workbook(filename)
        self.filename = filename

    def rename_sheet(self):
        # 1.重命名 sheet
        self.workbook['Sheet1'].title = 'Sheet111'

        # 2.保存后生效
        self.workbook.save(self.filename)


if __name__ == '__main__':
    test = Excel('1.xlsx')
    # C:\Users\Administrator\Desktop\Temp\1.xlsx
    test.rename_sheet()

3 工作表 sheet

3.1 追加數(shù)據(jù)

import openpyxl
from openpyxl.worksheet.worksheet import Worksheet


class Excel(object):
    def __init__(self, filename):
        self.workbook = openpyxl.load_workbook(filename)
        self.filename = filename

    def append_data(self):
        # 1.獲取要添加數(shù)據(jù)的 sheet 對象
        sheet: Worksheet = self.workbook['Sheet']
        # 與下列寫法等價(jià),只是多了 "代碼提示"
        # sheet = self.workbook['Sheet']

        # 2.追加數(shù)據(jù)
        sheet.append(['姓名', '性別', '年齡'])
        sheet.append(['張三', '女', 18])
        sheet.append(['李四', '男', 19])
        sheet.append(['王五', '女', 20])

        # 3.保存后生效
        self.workbook.save(self.filename)


if __name__ == '__main__':
    test = Excel('1.xlsx')
    # C:\Users\Administrator\Desktop\Temp\1.xlsx
    test.append_data()

3.2 查詢數(shù)據(jù)

import openpyxl
from openpyxl.worksheet.worksheet import Worksheet


class Excel(object):
    def __init__(self, filename):
        self.workbook = openpyxl.load_workbook(filename)
        self.filename = filename

    def select_data(self):
        # 1.獲取 sheet 對象
        sheet: Worksheet = self.workbook['Sheet']
        # 與下列寫法等價(jià),只是多了 "代碼提示"
        # sheet = self.workbook['Sheet']

        # 2.查詢屬性
        print(f'title: {sheet.title}')  # 標(biāo)題,如:Sheet
        print(f'dimensions: {sheet.dimensions}')  # 表格大小,如:A1:B3
        print(f'min_row: {sheet.min_row}')  # 最小行 1
        print(f'max_row: {sheet.max_row}')  # 最大行 3
        print(f'rows: {sheet.rows}')  # 行對象

        print(f'min_column: {sheet.min_column}')  # 最小列 1
        print(f'max_column: {sheet.max_column}')  # 最大列 2
        print(f'columns: {sheet.columns}')  # 列對象

        # 3.查詢單元格數(shù)據(jù)
        print(sheet['A1'].value)

        # 4.保存后生效
        self.workbook.save(self.filename)


if __name__ == '__main__':
    test = Excel('1.xlsx')
    # C:\Users\Administrator\Desktop\Temp\1.xlsx
    test.select_data()

3.3 修改數(shù)據(jù)

import openpyxl
from openpyxl.worksheet.worksheet import Worksheet


class Excel(object):
    def __init__(self, filename):
        self.workbook = openpyxl.load_workbook(filename)
        self.filename = filename

    def update_data(self):
        # 1.獲取 sheet 對象
        sheet: Worksheet = self.workbook['Sheet']
        # 與下列寫法等價(jià),只是多了 "代碼提示"
        # sheet = self.workbook['Sheet']

        # 2.修改數(shù)據(jù)
        sheet['A1'] = '我是A1'
        sheet.cell(row=2, column=1).value = '我是A2'
        sheet.cell(row=3, column=1, value='我是A3')

        # 3.保存后生效
        self.workbook.save(self.filename)


if __name__ == '__main__':
    test = Excel('1.xlsx')
    # C:\Users\Administrator\Desktop\Temp\1.xlsx
    test.update_data()

3.4 刪除數(shù)據(jù)

import openpyxl
from openpyxl.worksheet.worksheet import Worksheet


class Excel(object):
    def __init__(self, filename):
        self.workbook = openpyxl.load_workbook(filename)
        self.filename = filename

    def update_data(self):
        # 1.獲取 sheet 對象
        sheet: Worksheet = self.workbook['Sheet']
        # 與下列寫法等價(jià),只是多了 "代碼提示"
        # sheet = self.workbook['Sheet']

        # 2.刪除數(shù)據(jù)
        sheet.delete_rows(idx=1, amount=1)  # idx 行開始(含),往下刪除 amount 行
        sheet.delete_cols(idx=2, amount=2)  # idx 列開始(含),往右刪除 amount 行

        # 3.保存后生效
        self.workbook.save(self.filename)


if __name__ == '__main__':
    test = Excel('1.xlsx')
    # C:\Users\Administrator\Desktop\Temp\1.xlsx
    test.update_data()

3.5 獲取表頭

import openpyxl
from openpyxl.worksheet.worksheet import Worksheet


class Excel(object):
    def __init__(self, filename):
        self.workbook = openpyxl.load_workbook(filename)
        self.filename = filename

    def get_sheet_head(self):
        # 1.獲取 sheet 對象
        sheet: Worksheet = self.workbook['Sheet']
        # 與下列寫法等價(jià),只是多了 "代碼提示"
        # sheet = self.workbook['Sheet']

        # 2.獲取表頭,其中:values_only=True 表示只獲取值
        for i in sheet.iter_cols(min_col=1, max_row=1, values_only=True):
            print(i)


if __name__ == '__main__':
    test = Excel('1.xlsx')
    # C:\Users\Administrator\Desktop\Temp\1.xlsx
    test.get_sheet_head()

3.6 遍歷數(shù)據(jù)

import openpyxl
from openpyxl.worksheet.worksheet import Worksheet


def read_excel(filename):
    """
    遍歷 sheet 中的數(shù)據(jù)
    :param filename: 文件名
    """
    lwb = openpyxl.load_workbook(filename)

    # sheet 列表
    # sheet = lwb['Sheet']
    sheet: Worksheet = lwb['Sheet']  # 手動指定類型,可用代碼提示

    # 遍歷方式1:按行遍歷
    for row in sheet.iter_rows():
        for cell in row:
            print(cell.row, cell.column, cell.value)

    print('------------------ 分割線1 -----------------')

    # 遍歷方式2:按列遍歷
    for col in sheet.iter_cols():
        for cell in col:
            print(cell.row, cell.column, cell.value)


if __name__ == '__main__':
    fileName = '1.xlsx'
    read_excel(fileName)

4 單元格 cell

4.1 查詢

import openpyxl
from openpyxl.worksheet.worksheet import Worksheet


class Excel(object):
    def __init__(self, filename):
        self.workbook = openpyxl.load_workbook(filename)
        self.filename = filename

    def get_cell(self):
        # 1.獲取 sheet 對象
        sheet: Worksheet = self.workbook['Sheet']
        # 與下列寫法等價(jià),只是多了 "代碼提示"
        # sheet = self.workbook['Sheet']

        # 2.獲取單個(gè)單元格數(shù)據(jù)
        cell1 = sheet['A1']  # A1 單元格
        cell2 = sheet.cell(1, 1)  # 效果同上
        print(cell1.value)
        print(cell2.value)

        # 3.查詢多個(gè)單元格數(shù)據(jù)
        cells = sheet['A1:B2']

        for item in cells:
            for cell in item:
                print(cell.row, cell.column, cell.value)


if __name__ == '__main__':
    test = Excel('1.xlsx')
    # C:\Users\Administrator\Desktop\Temp\1.xlsx
    test.get_cell()

4.2 修改

import openpyxl
from openpyxl.worksheet.worksheet import Worksheet


class Excel(object):
    def __init__(self, filename):
        self.workbook = openpyxl.load_workbook(filename)
        self.filename = filename

    def update_cell(self):
        # 1.獲取 sheet 對象
        sheet: Worksheet = self.workbook['Sheet']
        # 與下列寫法等價(jià),只是多了 "代碼提示"
        # sheet = self.workbook['Sheet']

        # 3.修改 單元格 A1 的值為 'A1'
        cell1 = sheet['A1']  # A1 單元格
        cell1.value = 'A1'  # 賦值

        # 3.保存后生效
        self.workbook.save(self.filename)


if __name__ == '__main__':
    test = Excel('1.xlsx')
    # C:\Users\Administrator\Desktop\Temp\1.xlsx
    test.update_cell()

以上就是Python使用openpyxl讀取Excel的操作詳解的詳細(xì)內(nèi)容,更多關(guān)于Python openpyxl讀取Excel的資料請關(guān)注腳本之家其它相關(guān)文章!

相關(guān)文章

  • python df遍歷的N種方式(小結(jié))

    python df遍歷的N種方式(小結(jié))

    本文主要介紹了python df遍歷的N種方式,文中通過示例代碼介紹的非常詳細(xì),對大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面隨著小編來一起學(xué)習(xí)學(xué)習(xí)吧
    2022-07-07
  • python之列表推導(dǎo)式的用法

    python之列表推導(dǎo)式的用法

    這篇文章主要介紹了python之列表推導(dǎo)式的用法,文中通過示例代碼介紹的非常詳細(xì),對大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面隨著小編來一起學(xué)習(xí)學(xué)習(xí)吧
    2019-11-11
  • Python selenium模擬網(wǎng)頁點(diǎn)擊爬蟲交管12123違章數(shù)據(jù)

    Python selenium模擬網(wǎng)頁點(diǎn)擊爬蟲交管12123違章數(shù)據(jù)

    本次介紹怎么以模擬點(diǎn)擊方式進(jìn)入交管12123爬取車輛違章數(shù)據(jù),對大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面隨著小編來一起學(xué)習(xí)學(xué)習(xí)吧
    2021-05-05
  • Python?argparse庫的基本使用步驟

    Python?argparse庫的基本使用步驟

    argparse庫是python下的一個(gè)命令行參數(shù)管理庫,支持int、str、float、bool、數(shù)組等5種基本數(shù)據(jù)類型,這篇文章主要介紹了Python?argparse庫的基本使用,需要的朋友可以參考下
    2022-07-07
  • 詳解python3中socket套接字的編碼問題解決

    詳解python3中socket套接字的編碼問題解決

    本篇文章主要介紹了詳解python3中socket套接字的編碼問題解決,具有一定的參考價(jià)值,感興趣的小伙伴們可以參考一下
    2017-07-07
  • 使用Python裝飾器在Django框架下去除冗余代碼的教程

    使用Python裝飾器在Django框架下去除冗余代碼的教程

    這篇文章主要介紹了使用Python裝飾器在Django框架下去除冗余代碼的教程,主要是處理JSON代碼的一些冗余,需要的朋友可以參考下
    2015-04-04
  • python八皇后問題的解決方法

    python八皇后問題的解決方法

    這篇文章主要為大家詳細(xì)介紹了python八皇后問題的解決方法,具有一定的參考價(jià)值,感興趣的小伙伴們可以參考一下
    2018-09-09
  • Windows安裝Python、pip、easy_install的方法

    Windows安裝Python、pip、easy_install的方法

    這篇文章主要介紹了Windows安裝Python、pip、easy_install的方法,需要的朋友可以參考下
    2017-03-03
  • python實(shí)現(xiàn)自動發(fā)送郵件

    python實(shí)現(xiàn)自動發(fā)送郵件

    這篇文章主要為大家詳細(xì)介紹了python實(shí)現(xiàn)自動發(fā)送郵件功能,具有一定的參考價(jià)值,感興趣的小伙伴們可以參考一下
    2018-06-06
  • linux 下python多線程遞歸復(fù)制文件夾及文件夾中的文件

    linux 下python多線程遞歸復(fù)制文件夾及文件夾中的文件

    這篇文章主要介紹了linux 下python多線程遞歸復(fù)制文件夾及文件夾中的文件,本文通過實(shí)例代碼給大家介紹的非常詳細(xì),具有一定的參考借鑒價(jià)值,需要的朋友可以參考下
    2020-01-01

最新評論

牡丹江市| 凌源市| 华亭县| 呼和浩特市| 葵青区| 阿拉尔市| 通州市| 托里县| 翼城县| 焉耆| 工布江达县| 河池市| 滦南县| 六盘水市| 嘉义市| 马尔康县| 罗甸县| 湖口县| 永城市| 澜沧| 遂平县| 保德县| 安吉县| 邵东县| 修文县| 云南省| 定日县| 五原县| 沛县| 清水县| 行唐县| 疏附县| 石屏县| 南木林县| 炎陵县| 阳高县| 葫芦岛市| 齐齐哈尔市| 县级市| 浪卡子县| 辰溪县|