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

python之openpyxl模塊的安裝和基本用法(excel管理)

 更新時(shí)間:2021年02月03日 15:31:40   作者:forever_wen  
這篇文章主要給大家介紹了關(guān)于python之openpyxl模塊的安裝和基本用法的相關(guān)資料,文中通過(guò)示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面隨著小編來(lái)一起學(xué)習(xí)學(xué)習(xí)吧

前言

openpyxl模塊是一個(gè)讀寫Excel 2010文檔的Python庫(kù),如果要處理更早格式的Excel文檔,需要用到額外的庫(kù),openpyxl是一個(gè)比較綜合的工具,能夠同時(shí)讀取和修改Excel文檔。其他很多的與Excel相關(guān)的項(xiàng)目基本只支持讀或者寫Excel一種功能。
要對(duì)excel進(jìn)行操作,必須要有能打開(kāi)excel的軟件,這里以wps為例

一.獲取wps的安裝包并安裝

這里寫圖片描述

二.excel文檔的基本定義

1) 工作薄(workbook):一個(gè)EXCEL文件就稱為一個(gè)工作薄,一個(gè)工作薄中可以包含若干張工作表。

2) 工作表(sheet):工作薄中的每一張表格稱為工作表,每張工作表都有一個(gè)標(biāo)簽,默認(rèn)為sheet1\sheet2\sheet3來(lái)命名,(一個(gè)工作 薄默認(rèn)為由3個(gè)工作表組成)

3) 活動(dòng)表(active sheet):指當(dāng)前正在操作的工作表

4) 行(row): 工作表中的每一行行首數(shù)字(1、2、3、)稱為行標(biāo)題;一張工作表最多有65536行

5) 列(column): 列標(biāo)題:工作表中每一列列首的字母(A、B、C)稱為列標(biāo)題;一張工作表最多有256列

6)單元格(cell): 工作表的每一個(gè)格稱為單元格

三.導(dǎo)入openpyxl模塊

在pycharm下,執(zhí)行import openpyxl,發(fā)現(xiàn)會(huì)報(bào)錯(cuò),這時(shí)我們將鼠標(biāo)放在openpyxl上,按下alt + enter,選擇第一個(gè)進(jìn)行安裝。

這里寫圖片描述 

出現(xiàn)下圖,說(shuō)明安裝成功。

這里寫圖片描述 

如果安裝失敗,就需要到第三方庫(kù)進(jìn)行安裝。

pip3 install openpyx

四.openpyxl基本用法

1.創(chuàng)建對(duì)象

打開(kāi)或者創(chuàng)建一個(gè)Excel需要?jiǎng)?chuàng)建一個(gè)Workbook對(duì)象

獲取一個(gè)表則需要先創(chuàng)建一個(gè)Workbook對(duì)象,然后使用該對(duì)象的方法來(lái)得到一個(gè)Worksheet對(duì)象

如果要獲取表中的數(shù)據(jù),那么得到Worksheet對(duì)象以后再?gòu)闹蝎@取代表單元格的Cell對(duì)象

Workbook對(duì)象

  一個(gè)Workbook對(duì)象代表一個(gè)Excel文檔,因此在操作Excel之前,都應(yīng)該先創(chuàng)建一個(gè)Workbook對(duì)象。對(duì)于創(chuàng)建一個(gè)新的Excel文檔,直接進(jìn)行Workbook類的調(diào)用即可,對(duì)于一個(gè)已經(jīng)存在的Excel文檔,可以使用openpyxl模塊的load_workbook函數(shù)進(jìn)行讀取,該函數(shù)包涵多個(gè)參數(shù),但只有filename參數(shù)為必傳參數(shù)。filename 是一個(gè)文件名,也可以是一個(gè)打開(kāi)的文件對(duì)象

import openpyxl
wb = openpyxl.Workbook('Book1.xlsx')
wb1 = openpyxl.load_workbook('Book2.xlsx')

print(wb)
print(type(wb))
print(wb1)
print(type(wb1))

這里寫圖片描述

2.Workbook對(duì)象屬性(工作簿操作)

sheetnames:獲取工作簿中的表(列表)

active:獲取當(dāng)前活躍的Worksheet

worksheets:以列表的形式返回所有的Worksheet(表格)

read_only:判斷是否以read_only模式打開(kāi)Excel文檔

encoding:獲取文檔的字符集編碼

properties:獲取文檔的元數(shù)據(jù),如標(biāo)題,創(chuàng)建者,創(chuàng)建日期等

import openpyxl

wb = openpyxl.load_workbook('Book2.xlsx')
print(wb.sheetnames)
print(wb.active)
print(wb.worksheets)
print(wb.read_only)
print(wb.encoding)
print(wb.properties) ##運(yùn)行結(jié)果最后三行屬于該屬性

excel信息

這里寫圖片描述 

運(yùn)行結(jié)果

這里寫圖片描述

3.Worksheet,Cell對(duì)象(工作表操作,單元格)

Worksheet:

title:表格的標(biāo)題

max_row:表格的最大行

min_row:表格的最小行

max_column:表格的最大列

min_column:表格的最小列

rows:按行獲取單元格(Cell對(duì)象) - 生成器

columns:按列獲取單元格(Cell對(duì)象) - 生成器

values:按行獲取表格的內(nèi)容(數(shù)據(jù)) - 生成器

Cell:

row:?jiǎn)卧袼诘男?/p>

column:?jiǎn)卧褡诘牧?/p>

value:?jiǎn)卧竦闹?/p>

coordinate:?jiǎn)卧竦淖鴺?biāo)

import openpyxl

wb = openpyxl.load_workbook('Book2.xlsx')
##選擇要操作的工作表, 返回工作表對(duì)象
sheet = wb['排序商品信息']
#獲取工作表的名稱
print(sheet.title)
# 獲取工作表中行和列的最值
print(sheet.max_column)
print(sheet.max_row)
print(sheet.min_column)
print(sheet.min_row)
##修改表的名稱
sheet.title = 'sheet1'
print(sheet.title)
# 返回指定行指定列的單元格信息
print(sheet.cell(row=1, column=2).value)
cell = sheet['B1']
print(cell)
print(cell.row, cell.column, cell.value,cell.coordinate)

運(yùn)行前excel信息

這里寫圖片描述 

這里寫圖片描述

4.訪問(wèn)單元格的所有信息

import openpyxl

wb = openpyxl.load_workbook('Book2.xlsx')
##選擇要操作的工作表, 返回工作表對(duì)象
sheet = wb['排序商品信息']
for row in sheet.rows:
 # 循環(huán)遍歷每一個(gè)單元格
 for cell in row:
 # 獲取單元格的內(nèi)容
 print(cell.value, end=',')
 print()

這里寫圖片描述

import openpyxl

wb = openpyxl.load_workbook('Book2.xlsx')
##選擇要操作的工作表, 返回工作表對(duì)象
sheet = wb['排序商品信息']
for row in sheet.values:
 print(*row)

這里寫圖片描述

5.應(yīng)用案例

需求:

商品名稱 商品價(jià)格 商品數(shù)量

- 定義一個(gè)函數(shù), readwb(wbname, sheetname=None)

- 如果用戶指定sheetname就打開(kāi)用戶指定的工作表, 如果沒(méi)有指定, 打開(kāi)active sheet;

- 根據(jù)商品的價(jià)格進(jìn)行排序(由小到大), 保存到文件中;商品名稱:商品價(jià)格:商品數(shù)量

- 所有信息, 并將其保存到數(shù)據(jù)庫(kù)中;

import os

import openpyxl


def readwb(wbname, sheetname=None):
 # 打開(kāi)工作薄
 wb = openpyxl.load_workbook(wbname)
 # 獲取要操作的工作表
 if not sheetname:
  sheet = wb.active
 else:
  sheet = wb[sheetname]

 # 獲取商品信息保存到列表中
 #[ ['name', price, count]
 #
 # ]
 all_info = []
 for row in sheet.rows:
  child = [cell.value for cell in row]
  all_info.append(child)
 return sorted(all_info, key=lambda item: item[1])


def save_to_excel(data, wbname, sheetname='sheet1'):
 """
 將信息保存到excel表中;
 [[' BOOK', 50, 3], ['APPLE', 100, 1], ['BANANA', 200, 0.5]]
 """
 print("寫入Excel[%s]中......." %(wbname))
 # 打開(kāi)excel表, 如果文件不存在, 自己實(shí)例化一個(gè)WorkBook對(duì)象
 wb = openpyxl.Workbook()
 # 修改當(dāng)前工作表的名稱
 sheet = wb.active
 # 修改工作表的名稱
 sheet.title = sheetname

 for row, item in enumerate(data): # 0 [' BOOK', 50, 3]
  for column, cellValue in enumerate(item): # 0 ' BOOK'
   sheet.cell(row=row+1, column=column+1, value=cellValue)

 # ** 往單元格寫入內(nèi)容
 # sheet.cell['B1'].value = "value"
 # sheet.cell(row=1, column=2, value="value")

 # 保存寫入的信息
 wb.save(filename=wbname)
 print("寫入成功!")

data = readwb(wbname='Book1.xlsx')
save_to_excel(data, wbname='Book2.xlsx', sheetname="排序商品信息")

原excel信息

這里寫圖片描述 

新excel信息

這里寫圖片描述

總結(jié)

到此這篇關(guān)于python之openpyxl模塊的安裝和基本用法的文章就介紹到這了,更多相關(guān)python openpyxl模塊(excel管理)內(nèi)容請(qǐng)搜索腳本之家以前的文章或繼續(xù)瀏覽下面的相關(guān)文章希望大家以后多多支持腳本之家!

相關(guān)文章

  • python-redis-lock實(shí)現(xiàn)鎖自動(dòng)續(xù)期的源碼邏輯

    python-redis-lock實(shí)現(xiàn)鎖自動(dòng)續(xù)期的源碼邏輯

    這篇文章主要介紹了python-redis-lock實(shí)現(xiàn)鎖自動(dòng)續(xù)期的源碼邏輯,其中用到了多線程threading、弱引用weakref和Lua腳本等相關(guān)知識(shí),需要的朋友可以參考下
    2024-07-07
  • Python內(nèi)置函數(shù)Type()函數(shù)一個(gè)有趣的用法

    Python內(nèi)置函數(shù)Type()函數(shù)一個(gè)有趣的用法

    這篇文章主要介紹了Python內(nèi)置函數(shù)Type()函數(shù)一個(gè)有趣的用法,本文講解的是個(gè)人發(fā)現(xiàn)在的一個(gè)有趣的用法,注意這種寫法會(huì)導(dǎo)致代碼很難讀,需要的朋友可以參考下
    2015-02-02
  • Django使用AJAX調(diào)用自己寫的API接口的方法

    Django使用AJAX調(diào)用自己寫的API接口的方法

    這篇文章主要介紹了Django使用AJAX調(diào)用自己寫的API接口的方法,小編覺(jué)得挺不錯(cuò)的,現(xiàn)在分享給大家,也給大家做個(gè)參考。一起跟隨小編過(guò)來(lái)看看吧
    2019-03-03
  • 使用Python自動(dòng)化Microsoft Excel和Word的操作方法

    使用Python自動(dòng)化Microsoft Excel和Word的操作方法

    這篇文章主要介紹了使用Python自動(dòng)化Microsoft Excel和Word,本文給大家介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或工作具有一定的參考借鑒價(jià)值,需要的朋友可以參考下
    2021-04-04
  • 實(shí)例講解Python中的私有屬性

    實(shí)例講解Python中的私有屬性

    這篇文章主要介紹了Python中的私有屬性,本文用代碼實(shí)例來(lái)幫助理解私有屬性的一些技巧和使用方法,需要的朋友可以參考下
    2014-08-08
  • Python如何將bmp格式的圖片批量轉(zhuǎn)成jpg

    Python如何將bmp格式的圖片批量轉(zhuǎn)成jpg

    這篇文章主要介紹了Python如何將bmp格式的圖片批量轉(zhuǎn)成jpg問(wèn)題,具有很好的參考價(jià)值,希望對(duì)大家有所幫助。如有錯(cuò)誤或未考慮完全的地方,望不吝賜教
    2023-03-03
  • Anaconda虛擬環(huán)境配置Python庫(kù)與Spyder編譯器的方法

    Anaconda虛擬環(huán)境配置Python庫(kù)與Spyder編譯器的方法

    在文章創(chuàng)建Anaconda虛擬Python環(huán)境的方法中,我們介紹了在Anaconda環(huán)境下,創(chuàng)建、使用與刪除Python虛擬環(huán)境的方法,而創(chuàng)建虛擬環(huán)境后,就需要在對(duì)應(yīng)的環(huán)境內(nèi)配置各類庫(kù)與軟件,本文就對(duì)這些操作加以介紹,感興趣的朋友感興趣的朋友一起看看吧
    2024-04-04
  • python從入門到實(shí)踐之字典

    python從入門到實(shí)踐之字典

    這篇文章主要為大家介紹了python字典,具有一定的參考價(jià)值,感興趣的小伙伴們可以參考一下,希望能夠給你帶來(lái)幫助
    2022-01-01
  • Python 中random 庫(kù)的詳細(xì)使用

    Python 中random 庫(kù)的詳細(xì)使用

    random庫(kù)是使用隨機(jī)數(shù)的Python標(biāo)準(zhǔn)庫(kù),python中用于生成偽隨機(jī)數(shù)的函數(shù)庫(kù)是random,今天通過(guò)本文給大家分享Python 中random 庫(kù)的詳細(xì)使用,感興趣的朋友一起看看吧
    2021-06-06
  • 對(duì)python dataframe邏輯取值的方法詳解

    對(duì)python dataframe邏輯取值的方法詳解

    今天小編就為大家分享一篇對(duì)python dataframe邏輯取值的方法詳解,具有很好的參考價(jià)值,希望對(duì)大家有所幫助。一起跟隨小編過(guò)來(lái)看看吧
    2019-01-01

最新評(píng)論