python如何實(shí)現(xiàn)對Excel表格的操作-創(chuàng)新互聯(lián)

創(chuàng)新互聯(lián)www.cdcxhl.cn八線動(dòng)態(tài)BGP香港云服務(wù)器提供商,新人活動(dòng)買多久送多久,劃算不套路!

成都創(chuàng)新互聯(lián)公司2013年成立,是專業(yè)互聯(lián)網(wǎng)技術(shù)服務(wù)公司,擁有項(xiàng)目做網(wǎng)站、成都網(wǎng)站制作網(wǎng)站策劃,項(xiàng)目實(shí)施與項(xiàng)目整合能力。我們以讓每一個(gè)夢想脫穎而出為使命,1280元新絳做網(wǎng)站,已為上家服務(wù),為新絳各地企業(yè)和個(gè)人服務(wù),聯(lián)系電話:18980820575

python如何實(shí)現(xiàn)對Excel表格的操作?很多新手對此不是很清楚,為了幫助大家解決這個(gè)難題,下面小編將為大家詳細(xì)講解,有這方面需求的人可以來學(xué)習(xí)下,希望你能有所收獲。

利用python做excel表格的方法:首先用openpyxl模塊打開一個(gè)excel文檔,指定行指定列的單元格信息;然后調(diào)用【wb.sheetnames】和【wb.active】獲取工作簿詳細(xì)信息;最后使用索引讀取取得Cell對象。

一   python與Excel表格

Excel 是 Windows 環(huán)境下流行的、強(qiáng)大的電子表格應(yīng)用。openpyxl 模塊讓 Python 程序能讀取和修改 Excel電子表格文件
1)excel文檔的基本定義
- 工作薄(workbook)
- 工作表(sheet)
- 活動(dòng)表(active sheet)
- 行(row): 1,2,3,4,5,6……..
- 列(column): A,B,C,D……..
- 單元格(cell): B1, C1
2)python對于Excel表格操作的模塊有很多種,這里選用openpyxl模塊
但是openpyxl模塊時(shí)需要進(jìn)行安裝的

pip install openpyxl

利用以上命令來安裝openpyxl模塊

這是選作需要操作的表格
python如何實(shí)現(xiàn)對Excel表格的操作
1>   打開一個(gè)excel文檔

import openpyxl# 1. 打開一個(gè)excel文檔, class 'openpyxl.workbook.workbook.Workbook'實(shí)例化出來的對象wb = openpyxl.load_workbook('Book.xlsx')
print(wb, type(wb))# 獲取當(dāng)前工作薄里所有的工作表, 和正在使用的表;print(wb.sheetnames)
print(wb.active)

python如何實(shí)現(xiàn)對Excel表格的操作
輸出的是一個(gè)對象
2>  選擇要操作的工作表

# 2. 選擇要操作的工作表, 返回工作表對象sheet = wb['Sheet1']# 獲取工作表的名稱print(sheet.title)

python如何實(shí)現(xiàn)對Excel表格的操作
3>  指定行指定列的單元格信息

# 3. 返回指定行指定列的單元格信息print(sheet.cell(row=1, column=2).value)

cell = sheet['B1']print(cell)print(cell.row, cell.column, cell.value)

python如何實(shí)現(xiàn)對Excel表格的操作
4>  獲取工作表中行和列的大值

# 4. 獲取工作表中行和列的大值print(sheet.max_column)print(sheet.max_row)
sheet.title = '學(xué)生信息'print(sheet.title)

python如何實(shí)現(xiàn)對Excel表格的操作
5>  訪問單元格的所有信息

# 5. 訪問單元格的所有信息print(sheet.rows)  # 返回一個(gè)生成器, 包含文件的每一行內(nèi)容, 可以通過便利訪問.# 循環(huán)遍歷每一行for row in sheet.rows:    # 循環(huán)遍歷每一個(gè)單元格
    for cell in row:        # 獲取單元格的內(nèi)容
        print(cell.value, end=',')
    print()

python如何實(shí)現(xiàn)對Excel表格的操作
6>  保存修改信息

# 6. 保存修改信息wb.save(filename='Boom.xlsx')

python如何實(shí)現(xiàn)對Excel表格的操作
因此操作Excel表格可詳細(xì)的概括如下:
1.導(dǎo)入 openpyxl 模塊。
2.調(diào)用 openpyxl.load_workbook()函數(shù)。
3.取得 Workbook 對象。
4.調(diào)用 wb.sheetnames和 wb.active 獲取工作簿詳細(xì)信息。

5.取得 Worksheet 對象。
6.使用索引或工作表的 cell()方法,帶上 row 和 column 關(guān)鍵字參數(shù)。
7.取得 Cell 對象。
8.讀取 Cell 對象的 value 屬性
二   Excel簡單實(shí)例
- 定義一個(gè)函數(shù), readwb(wbname, sheetname=None)
- 如果用戶指定sheetname就打開用戶指定的工作表, 如果沒有指定, 打開active sheet;
-  根據(jù)商品的價(jià)格進(jìn)行排序(由小到大), 保存到文件中;商品名稱:商品價(jià)格:商品數(shù)量
- 所有信息, 并將其保存到數(shù)據(jù)庫中

import osimport openpyxldef readwb(wbname, sheetname=None):
    # 打開工作薄
    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))    # 打開excel表, 如果文件不存在, 自己實(shí)例化一個(gè)WorkBook對象
    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="排序商品信息")

python如何實(shí)現(xiàn)對Excel表格的操作

* 三   更改表格的內(nèi)容*
每一行代表一次單獨(dú)的銷售。列分別是銷售產(chǎn)品的類型(A)、產(chǎn)品每磅的價(jià)格
(B)、銷售的磅數(shù)(C),以及這次銷售的總收入。TOTAL 列設(shè)置為 Excel 公式,將每磅的成本乘以銷售的磅數(shù),
并將結(jié)果取整到分。有了這個(gè)公式,如果列 B 或 C 發(fā)生變化,TOTAL 列中的單元格將自動(dòng)更新.

需要更新的價(jià)格如下:
Celery  1.19
Garlic  3.07
Lemon   1.27

現(xiàn)在假設(shè) Garlic、 Celery 和 Lemons 的價(jià)格輸入的不正確。這讓你面對一項(xiàng)無聊
的任務(wù):遍歷這個(gè)電子表格中的幾千行,更新所有 garlic、celery 和 lemon 行中每磅
的價(jià)格。你不能簡單地對價(jià)格查找替換,因?yàn)榭赡苡衅渌漠a(chǎn)品價(jià)格一樣,你不希
望錯(cuò)誤地“更正”。對于幾千行數(shù)據(jù),手工操作可能要幾小時(shí)
下載文件 :  produceSales.xlsx
原文件打開情況:
python如何實(shí)現(xiàn)對Excel表格的操作
1>  首先需要打開電子表格文件
2>  然后查找每一行內(nèi)容,檢查列 A (即列表的第一個(gè)索引)的值是不是 Celery、Garlic 或 Lemon
3>  如果是,更新列 B 中的價(jià)格(即列表第二個(gè)索引)
4>  最后將該表格保存為一個(gè)新的文件

import osimport openpyxldef readwb(wbname, sheetname=None):
    # 打開工作薄
    wb = openpyxl.load_workbook(wbname)    # 獲取要操作的工作表
    if not sheetname:
        sheet = wb.active    else:
        sheet = wb[sheetname]    # 獲取商品信息保存到列表中
    all_info = []    for row in sheet.rows:
        child = [cell.value for cell in row]
        all_info.append(child)        if child[0] == 'Celery':
            child[1] = 1.19
        if child[0] == 'Garlic':
            child[1] = 3.07
        if child[0] == 'Lemon':
            child[1] = 1.27
    return all_infodef save_to_excel(data, wbname, sheetname='sheet1'):
    """
    將信息保存到excel表中;
    """
    print("寫入Excel[%s]中......." % (wbname))    # 打開excel表, 如果文件不存在, 自己實(shí)例化一個(gè)WorkBook對象
    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='/home/kiosk/Desktop/day17/produceSales.xlsx')
save_to_excel(data, wbname='new_Sales.xlsx', sheetname="商品信息")

python如何實(shí)現(xiàn)對Excel表格的操作
表示寫入新數(shù)據(jù)成功
python如何實(shí)現(xiàn)對Excel表格的操作
這是更改后的保存的新表格

undefined

一   python與Excel表格
Excel 是 Windows 環(huán)境下流行的、強(qiáng)大的電子表格應(yīng)用。openpyxl 模塊讓 Python 程序能讀取和修改 Excel電子表格文件
1)excel文檔的基本定義
- 工作薄(workbook)
- 工作表(sheet)
- 活動(dòng)表(active sheet)
- 行(row): 1,2,3,4,5,6……..
- 列(column): A,B,C,D……..
- 單元格(cell): B1, C1
2)python對于Excel表格操作的模塊有很多種,這里選用openpyxl模塊
但是openpyxl模塊時(shí)需要進(jìn)行安裝的

pip install openpyxl

利用以上命令來安裝openpyxl模塊

這是選作需要操作的表格
python如何實(shí)現(xiàn)對Excel表格的操作
1>   打開一個(gè)excel文檔

import openpyxl# 1. 打開一個(gè)excel文檔, class 'openpyxl.workbook.workbook.Workbook'實(shí)例化出來的對象wb = openpyxl.load_workbook('Book.xlsx')
print(wb, type(wb))# 獲取當(dāng)前工作薄里所有的工作表, 和正在使用的表;print(wb.sheetnames)
print(wb.active)

python如何實(shí)現(xiàn)對Excel表格的操作
輸出的是一個(gè)對象
2>  選擇要操作的工作表

# 2. 選擇要操作的工作表, 返回工作表對象sheet = wb['Sheet1']# 獲取工作表的名稱print(sheet.title)

python如何實(shí)現(xiàn)對Excel表格的操作
3>  指定行指定列的單元格信息

# 3. 返回指定行指定列的單元格信息print(sheet.cell(row=1, column=2).value)

cell = sheet['B1']print(cell)print(cell.row, cell.column, cell.value)

python如何實(shí)現(xiàn)對Excel表格的操作
4>  獲取工作表中行和列的大值

# 4. 獲取工作表中行和列的大值print(sheet.max_column)print(sheet.max_row)
sheet.title = '學(xué)生信息'print(sheet.title)

python如何實(shí)現(xiàn)對Excel表格的操作
5>  訪問單元格的所有信息

# 5. 訪問單元格的所有信息print(sheet.rows)  # 返回一個(gè)生成器, 包含文件的每一行內(nèi)容, 可以通過便利訪問.# 循環(huán)遍歷每一行for row in sheet.rows:    # 循環(huán)遍歷每一個(gè)單元格
    for cell in row:        # 獲取單元格的內(nèi)容
        print(cell.value, end=',')
    print()

python如何實(shí)現(xiàn)對Excel表格的操作
6>  保存修改信息

# 6. 保存修改信息wb.save(filename='Boom.xlsx')

python如何實(shí)現(xiàn)對Excel表格的操作
因此操作Excel表格可詳細(xì)的概括如下:
1.導(dǎo)入 openpyxl 模塊。
2.調(diào)用 openpyxl.load_workbook()函數(shù)。
3.取得 Workbook 對象。
4.調(diào)用 wb.sheetnames和 wb.active 獲取工作簿詳細(xì)信息。
5.取得 Worksheet 對象。
6.使用索引或工作表的 cell()方法,帶上 row 和 column 關(guān)鍵字參數(shù)。
7.取得 Cell 對象。
8.讀取 Cell 對象的 value 屬性
二   Excel簡單實(shí)例
- 定義一個(gè)函數(shù), readwb(wbname, sheetname=None)
- 如果用戶指定sheetname就打開用戶指定的工作表, 如果沒有指定, 打開active sheet;
-  根據(jù)商品的價(jià)格進(jìn)行排序(由小到大), 保存到文件中;商品名稱:商品價(jià)格:商品數(shù)量
- 所有信息, 并將其保存到數(shù)據(jù)庫中

import osimport openpyxldef readwb(wbname, sheetname=None):
    # 打開工作薄
    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))    # 打開excel表, 如果文件不存在, 自己實(shí)例化一個(gè)WorkBook對象
    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="排序商品信息")

python如何實(shí)現(xiàn)對Excel表格的操作

* 三   更改表格的內(nèi)容*
每一行代表一次單獨(dú)的銷售。列分別是銷售產(chǎn)品的類型(A)、產(chǎn)品每磅的價(jià)格
(B)、銷售的磅數(shù)(C),以及這次銷售的總收入。TOTAL 列設(shè)置為 Excel 公式,將每磅的成本乘以銷售的磅數(shù),
并將結(jié)果取整到分。有了這個(gè)公式,如果列 B 或 C 發(fā)生變化,TOTAL 列中的單元格將自動(dòng)更新.

需要更新的價(jià)格如下:
Celery  1.19
Garlic  3.07
Lemon   1.27

現(xiàn)在假設(shè) Garlic、 Celery 和 Lemons 的價(jià)格輸入的不正確。這讓你面對一項(xiàng)無聊
的任務(wù):遍歷這個(gè)電子表格中的幾千行,更新所有 garlic、celery 和 lemon 行中每磅
的價(jià)格。你不能簡單地對價(jià)格查找替換,因?yàn)榭赡苡衅渌漠a(chǎn)品價(jià)格一樣,你不希
望錯(cuò)誤地“更正”。對于幾千行數(shù)據(jù),手工操作可能要幾小時(shí)
下載文件 :  produceSales.xlsx
原文件打開情況:
python如何實(shí)現(xiàn)對Excel表格的操作
1>  首先需要打開電子表格文件
2>  然后查找每一行內(nèi)容,檢查列 A (即列表的第一個(gè)索引)的值是不是 Celery、Garlic 或 Lemon
3>  如果是,更新列 B 中的價(jià)格(即列表第二個(gè)索引)
4>  最后將該表格保存為一個(gè)新的文件

import osimport openpyxldef readwb(wbname, sheetname=None):
    # 打開工作薄
    wb = openpyxl.load_workbook(wbname)    # 獲取要操作的工作表
    if not sheetname:
        sheet = wb.active    else:
        sheet = wb[sheetname]    # 獲取商品信息保存到列表中
    all_info = []    for row in sheet.rows:
        child = [cell.value for cell in row]
        all_info.append(child)        if child[0] == 'Celery':
            child[1] = 1.19
        if child[0] == 'Garlic':
            child[1] = 3.07
        if child[0] == 'Lemon':
            child[1] = 1.27
    return all_infodef save_to_excel(data, wbname, sheetname='sheet1'):
    """
    將信息保存到excel表中;
    """
    print("寫入Excel[%s]中......." % (wbname))    # 打開excel表, 如果文件不存在, 自己實(shí)例化一個(gè)WorkBook對象
    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='/home/kiosk/Desktop/day17/produceSales.xlsx')
save_to_excel(data, wbname='new_Sales.xlsx', sheetname="商品信息")

python如何實(shí)現(xiàn)對Excel表格的操作
表示寫入新數(shù)據(jù)成功
python如何實(shí)現(xiàn)對Excel表格的操作
這是更改后的保存的新表格

看完上述內(nèi)容是否對您有幫助呢?如果還想對相關(guān)知識有進(jìn)一步的了解或閱讀更多相關(guān)文章,請關(guān)注創(chuàng)新互聯(lián)-成都網(wǎng)站建設(shè)公司行業(yè)資訊頻道,感謝您對創(chuàng)新互聯(lián)的支持。

新聞標(biāo)題:python如何實(shí)現(xiàn)對Excel表格的操作-創(chuàng)新互聯(lián)
文章URL:http://www.muchs.cn/article18/cdeogp.html

成都網(wǎng)站建設(shè)公司_創(chuàng)新互聯(lián),為您提供靜態(tài)網(wǎng)站域名注冊、App設(shè)計(jì)、網(wǎng)站建設(shè)、網(wǎng)站改版、用戶體驗(yàn)

廣告

聲明:本網(wǎng)站發(fā)布的內(nèi)容(圖片、視頻和文字)以用戶投稿、用戶轉(zhuǎn)載內(nèi)容為主,如果涉及侵權(quán)請盡快告知,我們將會在第一時(shí)間刪除。文章觀點(diǎn)不代表本網(wǎng)站立場,如需處理請聯(lián)系客服。電話:028-86922220;郵箱:631063699@qq.com。內(nèi)容未經(jīng)允許不得轉(zhuǎn)載,或轉(zhuǎn)載時(shí)需注明來源: 創(chuàng)新互聯(lián)

搜索引擎優(yōu)化