亚洲乱码中文字幕综合,中国熟女仑乱hd,亚洲精品乱拍国产一区二区三区,一本大道卡一卡二卡三乱码全集资源,又粗又黄又硬又爽的免费视频

python如何通過(guò)openpyxl讀寫(xiě)Excel文件

 更新時(shí)間:2023年10月07日 09:57:36   作者:檬檸wan  
python操作excel的庫(kù)有很多,有的庫(kù)只能讀取xsl格式,比如xlrd庫(kù),有的庫(kù)只能寫(xiě)xsl格式,比如xlwt庫(kù),有的只能讀寫(xiě)xslx格式,比如openpyxl庫(kù),綜合各庫(kù)及 xslx 格式比較常見(jiàn),所以本文主要講解openpyxl庫(kù)對(duì)xslx格式的excel操作,需要的朋友可以參考下

一、模塊安裝

openpyxl模塊可實(shí)現(xiàn)對(duì)excel文件的讀、寫(xiě)和修改,使用之前需要先安裝該模塊。

# openpyxl生成的xlsx格式支持wps和office,xls格式只支持wps,使用office打開(kāi)會(huì)報(bào)錯(cuò)
pip install openpyxl

二、 使用方法

Excel演示內(nèi)容,整個(gè)Excel文件稱(chēng)為工作簿,工作簿中的每個(gè)頁(yè)稱(chēng)為工作表,工作表又由單元格組成。

1、新建Excel并寫(xiě)入數(shù)據(jù)

import openpyxl
# 創(chuàng)建一個(gè)新的工作簿對(duì)象
wb = openpyxl.Workbook()
# 獲取工作表對(duì)象(sheet)
ws = wb.active
print(ws)
# 設(shè)置Sheet名稱(chēng)
ws.title = '學(xué)生表'
# 創(chuàng)建一個(gè)新sheet,可以指定名稱(chēng),index表示新創(chuàng)建的工作簿放在第幾個(gè)位置, index從0開(kāi)始計(jì)數(shù)
ws_1 = wb.create_sheet(index=1, title='成績(jī)表')
ws_2 = wb.create_sheet(index=2, title='科目表')
# 獲取所有工作表名稱(chēng)
print(wb.sheetnames)
# 方法一:寫(xiě)入單個(gè)單元格
ws['A1'] = '姓名'
ws['B1'] = '班級(jí)'
ws['c1'] = '年齡'
# 方法二:寫(xiě)入單個(gè)單元格(行,列,內(nèi)容); 也可以直接ws.cell(1, 4, '學(xué)校')
ws.cell(row=1, column=4, value='學(xué)校')
# 寫(xiě)入多個(gè)單元格(追加模式,不會(huì)覆蓋之前的,從有數(shù)據(jù)的下一行開(kāi)始)
ws.append(['王明', '三年級(jí)一班', '9歲'])
# 第一列和第三列插入數(shù)據(jù),第二列插入[None]值
ws.append(['王五', None, '10歲'])
# 追加第二行數(shù)據(jù),過(guò)濾空值
# 獲取工作表總行數(shù)
max_row = ws.max_row
col_values = []
# 遍歷第二列所有行
for row in range(1, max_row+1):
    # 獲取當(dāng)前單元格的值
    cell_value = ws.cell(row=row, column=2).value
    # 如果當(dāng)前單元格的值不為空
    if cell_value is not None:
        # 將當(dāng)前單元格的值添加到列表中
        col_values.append(cell_value)
print("第二列有 %d 行數(shù)據(jù)" % len(col_values))
ws.cell(len(col_values)+1, 2, "三年級(jí)二班")
# 將新數(shù)據(jù)追加到最后一行,忽略第二列
data = [['張三', '10歲'], ['李四', '15歲']]
for row in data:
    # 在第二列插入 None 值,實(shí)現(xiàn)跳過(guò)該列
    row.insert(1, None)
    ws.append(row)
# 保存
wb.save('1.xlsx')

2、讀取Excel數(shù)據(jù)

import openpyxl
# 獲取工作簿對(duì)象
wb = openpyxl.load_workbook('1.xlsx')
# 獲取所有工作表名稱(chēng)
print(wb.sheetnames)
# 獲取工作表對(duì)象,三種方法
sheet1 = wb['學(xué)生表']
sheet2 = wb.worksheets[1]
sheet3 = wb[wb.sheetnames[2]]
print(sheet1, sheet2, sheet3)
# 獲取工作表名稱(chēng)
title = sheet1.title
print(title)
# 獲取工作表總行數(shù)
rows = sheet1.max_row
# 獲取工作表總列數(shù)
cols = sheet1.max_column
# 總行,總列
print(rows, cols)
# 獲取某一單元格內(nèi)容(行, 列),例:2行1列,列表從1開(kāi)始;也可以直接sheet1.cell(2, 1).value
cell = sheet1.cell(row=2, column=1).value
print(cell)
# 讀取第一行的所有內(nèi)容
row_list = []
for i in range(1, cols+1):
    cell_value = sheet1.cell(row=1, column=i).value
    row_list.append(cell_value)
print(row_list)
# 讀取第一列的所有內(nèi)容
column_list = []
for i in range(1, rows+1):
    cell_value = sheet1.cell(row=i, column=1).value
    column_list.append(cell_value)
print(column_list)
# 讀取第二列的所有內(nèi)容,不包含空值
col_values = []
# 遍歷第二列所有行
for i in range(1, rows+1):
    # 獲取當(dāng)前單元格的值
    cell_value = sheet1.cell(row=i, column=2).value
    # 如果當(dāng)前單元格的值不為空
    if cell_value is not None:
        # 將當(dāng)前單元格的值添加到列表中
        col_values.append(cell_value)
print(col_values, len(col_values))

結(jié)果:

3、編輯Excel數(shù)據(jù)

import openpyxl
# 獲取工作簿對(duì)象
wb = openpyxl.load_workbook('1.xlsx')
# 獲取工作表對(duì)象
sheet = wb['學(xué)生表']
# 修改指定單元格內(nèi)容
sheet.cell(row=1, column=4, value='老師')
# 寫(xiě)入多個(gè)單元格(追加模式,不會(huì)覆蓋之前的,從有數(shù)據(jù)的下一行開(kāi)始)
sheet.append(['王五', '三年級(jí)二班', '10歲'])
# 復(fù)制"學(xué)生表",新sheet名稱(chēng)為"學(xué)生表 Copy"
ws_2 = wb.copy_worksheet(wb['學(xué)生表'])
# 保存
wb.save('1.xlsx')

4、刪除Excel數(shù)據(jù)

import openpyxl
# 獲取工作簿對(duì)象
wb = openpyxl.load_workbook('1.xlsx')
# 選擇要?jiǎng)h除內(nèi)容的工作表和單元格(行, 列)
sheet1 = wb['學(xué)生表']
cell_to_delete = sheet1.cell(row=2, column=1)
# 刪除單元格內(nèi)容
cell_to_delete.value = None
# 刪除 成績(jī)表 工作表
del wb['成績(jī)表']
# 保存
wb.save('1.xlsx')

總結(jié) 

到此這篇關(guān)于python如何通過(guò)openpyxl讀寫(xiě)Excel文件的文章就介紹到這了,更多相關(guān)python openpyxl讀寫(xiě)Excel內(nèi)容請(qǐng)搜索腳本之家以前的文章或繼續(xù)瀏覽下面的相關(guān)文章希望大家以后多多支持腳本之家!

相關(guān)文章

  • Python?使用和高性能技巧操作大全

    Python?使用和高性能技巧操作大全

    這篇文章主要介紹了Python?使用和高性能技巧總結(jié),對(duì)一些python易混淆的操作進(jìn)行對(duì)比,不少 Python 的用戶(hù)是從以前 C/C++ 遷移過(guò)來(lái)的,這兩種語(yǔ)言在語(yǔ)法、代碼風(fēng)格等方面有些不同,本節(jié)簡(jiǎn)要進(jìn)行介紹,需要的朋友可以參考下
    2022-01-01
  • python安裝并使用virtualenv管理包的詳細(xì)過(guò)程

    python安裝并使用virtualenv管理包的詳細(xì)過(guò)程

    本文主要介紹了Python的安裝過(guò)程和如何使用virtualenv管理包,首先,用戶(hù)需要訪問(wèn)Python官網(wǎng)下載安裝包,并運(yùn)行安裝程序,安裝完成后,在命令行輸入Python,顯示安裝的Python版本號(hào),即表示安裝成功,感興趣的朋友一起看看吧
    2024-10-10
  • Django傳遞數(shù)據(jù)給前端的3種方式小結(jié)

    Django傳遞數(shù)據(jù)給前端的3種方式小結(jié)

    Django從后臺(tái)往前臺(tái)傳遞數(shù)據(jù)時(shí)有多種方法可以實(shí)現(xiàn),下面這篇文章主要給大家介紹了關(guān)于Django傳遞數(shù)據(jù)給前端的3種方式,文中通過(guò)代碼介紹的非常詳細(xì),需要的朋友可以參考下
    2024-01-01
  • 利用python、tensorflow、opencv、pyqt5實(shí)現(xiàn)人臉實(shí)時(shí)簽到系統(tǒng)

    利用python、tensorflow、opencv、pyqt5實(shí)現(xiàn)人臉實(shí)時(shí)簽到系統(tǒng)

    這篇文章主要介紹了利用python、tensorflow、opencv、pyqt5實(shí)現(xiàn)人臉實(shí)時(shí)簽到系統(tǒng),本文給大家介紹的非常詳細(xì),具有一定的參考借鑒價(jià)值,需要的朋友可以參考下
    2019-09-09
  • Python格式化輸出的幾種匯總

    Python格式化輸出的幾種匯總

    這篇文章主要介紹了Python格式化輸出的幾種匯總,具有很好的參考價(jià)值,希望對(duì)大家有所幫助。如有錯(cuò)誤或未考慮完全的地方,望不吝賜教
    2023-02-02
  • python操作redis方法總結(jié)

    python操作redis方法總結(jié)

    本篇文章給大家總結(jié)了python操作redis的實(shí)際方法和實(shí)例代碼,有興趣的朋友參考學(xué)習(xí)下。
    2018-06-06
  • Python實(shí)現(xiàn)XGBoost算法的應(yīng)用實(shí)戰(zhàn)

    Python實(shí)現(xiàn)XGBoost算法的應(yīng)用實(shí)戰(zhàn)

    XGBoost(Extreme Gradient Boosting)是一種高效且廣泛使用的集成學(xué)習(xí)算法,它屬于梯度提升樹(shù)(GBDT)模型的一種改進(jìn),本文將結(jié)合實(shí)際案例,詳細(xì)介紹如何在Python中使用XGBoost算法進(jìn)行模型訓(xùn)練和預(yù)測(cè),需要的朋友可以參考下
    2024-08-08
  • 對(duì)Python生成器、裝飾器、遞歸的使用詳解

    對(duì)Python生成器、裝飾器、遞歸的使用詳解

    今天小編就為大家分享一篇對(duì)Python生成器、裝飾器、遞歸的使用詳解,具有很好的參考價(jià)值,希望對(duì)大家有所幫助。一起跟隨小編過(guò)來(lái)看看吧
    2019-07-07
  • python創(chuàng)建線(xiàn)程示例

    python創(chuàng)建線(xiàn)程示例

    這篇文章主要介紹了python創(chuàng)建線(xiàn)程示例,需要的朋友可以參考下
    2014-05-05
  • python通過(guò)opencv實(shí)現(xiàn)圖片裁剪原理解析

    python通過(guò)opencv實(shí)現(xiàn)圖片裁剪原理解析

    這篇文章主要介紹了python通過(guò)opencv實(shí)現(xiàn)圖片裁剪原理解析,文中通過(guò)示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友可以參考下
    2020-01-01

最新評(píng)論