欧美bbbwbbbw肥妇,免费乱码人妻系列日韩,一级黄片

python openpyxl的使用方法

 更新時(shí)間:2021年06月22日 15:22:14   作者:臨時(shí)營(yíng)地  
Python借助openpyxl可以對(duì)xlsx文件進(jìn)行操作,幫助大家高效辦公,處理excel文件,下面就介紹一下相關(guān)的方法,以及一個(gè)小例子。

生成新Excel

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))
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)

一共創(chuàng)建了三個(gè)Sheet

創(chuàng)建Sheet的三種方法

ws1 = wb.create_sheet("Mysheet") # 在末尾添加
# or
ws2 = wb.create_sheet("Mysheet", 0) # 在開頭添加
# or
ws3 = wb.create_sheet("Mysheet", -1) # 在倒數(shù)第二位添加

給Sheet中某cell賦值

ws2['F5'] = 3.14

賦值cell的值

ws3.cell(column=col, row=row, value="{0}".format(get_column_letter(col)))

讀取Excel

from openpyxl import load_workbook
wb = load_workbook(filename = 'empty_book.xlsx')
sheet_ranges = wb['range names']
print(sheet_ranges['D18'].value)

加載文件

wb = load_workbook(filename = 'empty_book.xlsx')

獲取sheet

sheet_ranges = wb['range names']

一個(gè)例子

我們的目標(biāo)是將相同考號(hào)的數(shù)據(jù)放入到一行中,并計(jì)算總成績(jī)

首先創(chuàng)建一個(gè)tab頁(yè)

這里需要注意直接

ws = wb['總成績(jī)']

肯定不行,因?yàn)檫@時(shí)候沒有這個(gè)tab呢 直接就會(huì)報(bào) KeyError: 'Worksheet 總成績(jī) does not exist.' 所以需要先檢查一下tab頁(yè)是否存在

if not '總成績(jī)' in wb.sheetnames:
    wb.create_sheet('總成績(jī)')
ws = wb['總成績(jī)']

需要注意的是最后一定要進(jìn)行保存操作,否則無(wú)用 wb.save('first.xlsx')

收集數(shù)據(jù)

# 對(duì)每個(gè)tab中的分?jǐn)?shù)數(shù)據(jù)進(jìn)行收集,放入對(duì)應(yīng)的數(shù)據(jù)行中

for pos, tabName in enumerate(wb.sheetnames):
    if tabName != '總成績(jī)':
        wstt = wb[tabName]
        for row in wstt.iter_rows(min_row=2, values_only=True):
            for ind, code in enumerate(ws['A']):
                if code.value == row[0]:
                    ws.cell(ind + 1, 4 + pos, row[2])
                    break

保存總成績(jī)

一開始直接用多字段相加

for po, row in enumerate(ws.iter_rows(min_row=2, values_only=True)):
    ws.cell(po + 1, 3, 0 + row[3] + row[4] + row[5] + row[6] + row[7] + row[8] + row[9])

報(bào)錯(cuò)如下

ws.cell(po + 1, 3, 0 + row[3] + row[4] + row[5] + row[6] + row[7] + row[8] + row[9])
TypeError: unsupported operand type(s) for +: 'int' and 'NoneType'

原因是其中存在NoneType,int和NoneType不能相加。 可以用int(value or 0)來(lái)將對(duì)應(yīng)的None, 0, [], ""這些Python認(rèn)為是False的轉(zhuǎn)換為1。

總結(jié)

人生苦短,我用 Python,在強(qiáng)大的Python幫助下,我們只需幾行代碼就可以生成我們想要的Excel。

以上就是python openpyxl的使用方法的詳細(xì)內(nèi)容,更多關(guān)于python openpyxl的使用的資料請(qǐng)關(guān)注腳本之家其它相關(guān)文章!

相關(guān)文章

  • django2筆記之路由path語(yǔ)法的實(shí)現(xiàn)

    django2筆記之路由path語(yǔ)法的實(shí)現(xiàn)

    這篇文章主要介紹了django2筆記之路由path語(yǔ)法的實(shí)現(xiàn),文中通過(guò)示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面隨著小編來(lái)一起學(xué)習(xí)學(xué)習(xí)吧
    2019-07-07
  • pycharm安裝漢化包失敗的問(wèn)題及解決

    pycharm安裝漢化包失敗的問(wèn)題及解決

    這篇文章主要介紹了pycharm安裝漢化包失敗的問(wèn)題及解決方案,具有很好的參考價(jià)值,希望對(duì)大家有所幫助,如有錯(cuò)誤或未考慮完全的地方,望不吝賜教
    2023-11-11
  • python3.6 tkinter實(shí)現(xiàn)屏保小程序

    python3.6 tkinter實(shí)現(xiàn)屏保小程序

    這篇文章主要為大家詳細(xì)介紹了python3.6 tkinter實(shí)現(xiàn)屏保小程序,具有一定的參考價(jià)值,感興趣的小伙伴們可以參考一下
    2019-07-07
  • python協(xié)程異步IO中asyncio的使用

    python協(xié)程異步IO中asyncio的使用

    這篇文章主要介紹了python異步編程之a(chǎn)syncio的使用,python中異步IO操作是通過(guò)asyncio來(lái)實(shí)現(xiàn)的,為了更加詳細(xì)說(shuō)明asyncio,我們先從協(xié)程的最基礎(chǔ)開始講解
    2023-12-12
  • python連接sql server亂碼的解決方法

    python連接sql server亂碼的解決方法

    為解決python連接sql server是出現(xiàn)的亂碼,需要在連接sql server 時(shí)指定字符集utf8(client charset = UTF-8),python環(huán)境制定了字符集變量(#coding=utf-8 )
    2013-01-01
  • Python通過(guò)屬性手段實(shí)現(xiàn)只允許調(diào)用一次的示例講解

    Python通過(guò)屬性手段實(shí)現(xiàn)只允許調(diào)用一次的示例講解

    下面小編就為大家分享一篇Python通過(guò)屬性手段實(shí)現(xiàn)只允許調(diào)用一次的示例講解,具有很好的參考價(jià)值,希望對(duì)大家有所幫助。一起跟隨小編過(guò)來(lái)看看吧
    2018-04-04
  • Python爬蟲之Selenium設(shè)置元素等待的方法

    Python爬蟲之Selenium設(shè)置元素等待的方法

    這篇文章主要介紹了Python爬蟲之Selenium設(shè)置元素等待的方法,文中通過(guò)示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面隨著小編來(lái)一起學(xué)習(xí)學(xué)習(xí)吧
    2020-12-12
  • Django集成百度富文本編輯器uEditor攻略

    Django集成百度富文本編輯器uEditor攻略

    UEditor是由百度web前端研發(fā)部開發(fā)所見即所得富文本web編輯器,具有輕量,可定制,注重用戶體驗(yàn)等特點(diǎn),開源基于MIT協(xié)議,允許自由使用和修改代碼。
    2014-07-07
  • Python真題案例之最長(zhǎng)回文子串 周期串詳解

    Python真題案例之最長(zhǎng)回文子串 周期串詳解

    今天來(lái)記錄一下字符串處理中常見到的回文子串與周期串問(wèn)題。使用的語(yǔ)言是Python優(yōu)雅的處理字符串是程序員不可或缺的技能,快來(lái)一起學(xué)習(xí)吧
    2022-03-03
  • Python3批量生成帶logo的二維碼方法

    Python3批量生成帶logo的二維碼方法

    今天小編就為大家分享一篇Python3批量生成帶logo的二維碼方法,具有很好的參考價(jià)值,希望對(duì)大家有所幫助。一起跟隨小編過(guò)來(lái)看看吧
    2019-06-06

最新評(píng)論