首頁 後端開發 Python教學 python針對Excel表格的操作

python針對Excel表格的操作

Jul 10, 2020 am 11:20 AM
excel python

利用python做excel表格的方法:首先用openpyxl模組打開一個excel文檔,指定行指定列的單元格信息;然後調用【wb.sheetnames】和【wb.active】獲取工作簿詳細信息;最後使用索引讀取取得Cell物件。

python針對Excel表格的操作

#一  python與Excel表格 

Excel 是Windows 環境下流行的、強大的電子表格應用程式。 openpyxl 模組讓Python 程式能讀取並修改Excel電子表格檔案
1)excel文件的基本定義
- 工作薄(workbook)
- 工作表(sheet)
- 活動表(active sheet)
- 行(row): 1,2,3,4,5,6……..
- 列(column): A,B,C,D……..
-單元格(cell): B1, C1
2)python對於Excel表格操作的模組有很多種,這裡選用openpyxl模組
但是openpyxl模組時需要進行安裝的

pip install openpyxl
登入後複製

利用以上指令來安裝openpyxl模組

這是選取需要操作的表格
python針對Excel表格的操作
1>   開啟一個excel文件

import openpyxl# 1. 打开一个excel文档, 
class 'openpyxl.workbook.workbook.Workbook'实例化出来的对象wb = openpyxl.load_workbook('Book.xlsx')
print(wb, type(wb))# 获取当前工作薄里所有的工作表,和正在使用的表;print(wb.sheetnames)
print(wb.active)
登入後複製

python針對Excel表格的操作
#輸出的是一個物件
2>  選擇要操作的工作表

# 2.选择要操作的工作表,返回工作表对象sheet=wb['Sheet1']
#获取工作表的名称print(sheet.title)
登入後複製

python針對Excel表格的操作
3>  指定行指定列的儲存格資訊

# 3. 返回指定行指定列的单元格信息print(sheet.cell(row=1, column=2).value)
cell = sheet['B1']print(cell)print(cell.row, cell.column, cell.value)
登入後複製

python針對Excel表格的操作
#4>取得工作表中行和列的最大值

# 4. 获取工作表中行和列的最大值print(sheet.max_column)print(sheet.max_row)
sheet.title = '学生信息'print(sheet.title)
登入後複製

python針對Excel表格的操作
5>  存取儲存格的所有資訊

# 5. 访问单元格的所有信息print(sheet.rows)  
# 返回一个生成器, 包含文件的每一行内容, 可以通过便利访问.
# 循环遍历每一行for row in sheet.rows:    
# 循环遍历每一个单元格for cell in row:        
# 获取单元格的内容
   print(cell.value, end=',')
 print()
登入後複製

python針對Excel表格的操作
6>  儲存修改資訊

#6.保存修改信息wb.save(filename='Boom.xlsx')
登入後複製

python針對Excel表格的操作
因此操作Excel表格可詳細的概括如下:
1. 導入openpyxl 模組。
2.呼叫 openpyxl.load_workbook()函數。
3.取得 Workbook 物件。
4.呼叫 wb.sheetnames和 wb.active 以取得工作簿詳細資料。   
5.取得 Worksheet 物件。
6.使用索引或工作表的 cell()方法,帶上 row 和 column 關鍵字參數。
7.取得 Cell 物件。
8.讀取Cell 物件的value 屬性
二  Excel簡單實例
- 定義一個函數,readwb(wbname, sheetname=None)
- 如果使用者指定sheetname就開啟使用者指定的工作表, 如果沒有指定, 開啟active sheet;
-  依照商品的價格進行排序(由小到大), 儲存到文件中;商品名稱:商品價格:商品數量
- 所有訊息,並將其保存到資料庫中

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表, 如果文件不存在, 自己实例化一个WorkBook对象
    wb = openpyxl.Workbook()    # 修改当前工作表的名称
    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) # ** 往单元格写入内容
    # 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針對Excel表格的操作

* 三  更改表格的內容*
每一行代表一次單獨的銷售。列分別是銷售產品的類型(A)、產品每磅的價格
(B)、銷售的磅數(C),以及這次銷售的總收入。 TOTAL 欄位設定為 Excel 公式,將每磅的成本乘以銷售的磅數,
並將結果取整到分。有了這個公式,如果列B 或C 發生變化,TOTAL 列中的單元格將自動更新.

#需要更新的價格如下:
Celery  1.19
Garlic  3.07
Lemon   1.27

现在假设 Garlic、 Celery 和 Lemons 的价格输入的不正确。这让你面对一项无聊
的任务:遍历这个电子表格中的几千行,更新所有 garlic、celery 和 lemon 行中每磅
的价格。你不能简单地对价格查找替换,因为可能有其他的产品价格一样,你不希
望错误地“更正”。对于几千行数据,手工操作可能要几小时
下载文件 : produceSales.xlsx
原文件打开情况:
python針對Excel表格的操作
1> 首先需要打开电子表格文件
2> 然后查找每一行内容,检查列 A (即列表的第一个索引)的值是不是 Celery、Garlic 或 Lemon
3> 如果是,更新列 B 中的价格(即列表第二个索引)
4> 最后将该表格保存为一个新的文件

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表, 如果文件不存在, 自己实例化一个WorkBook对象
    wb = openpyxl.Workbook()    
    # 修改当前工作表的名称
    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)    
            # ** 往单元格写入内容
    # 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針對Excel表格的操作
表示写入新数据成功
python針對Excel表格的操作


这是更改后的保存的新表格

以上是python針對Excel表格的操作的詳細內容。更多資訊請關注PHP中文網其他相關文章!

本網站聲明
本文內容由網友自願投稿,版權歸原作者所有。本站不承擔相應的法律責任。如發現涉嫌抄襲或侵權的內容,請聯絡admin@php.cn

熱AI工具

Undresser.AI Undress

Undresser.AI Undress

人工智慧驅動的應用程序,用於創建逼真的裸體照片

AI Clothes Remover

AI Clothes Remover

用於從照片中去除衣服的線上人工智慧工具。

Undress AI Tool

Undress AI Tool

免費脫衣圖片

Clothoff.io

Clothoff.io

AI脫衣器

Video Face Swap

Video Face Swap

使用我們完全免費的人工智慧換臉工具,輕鬆在任何影片中換臉!

熱門文章

<🎜>:泡泡膠模擬器無窮大 - 如何獲取和使用皇家鑰匙
3 週前 By 尊渡假赌尊渡假赌尊渡假赌
北端:融合系統,解釋
3 週前 By 尊渡假赌尊渡假赌尊渡假赌
Mandragora:巫婆樹的耳語 - 如何解鎖抓鉤
3 週前 By 尊渡假赌尊渡假赌尊渡假赌

熱工具

記事本++7.3.1

記事本++7.3.1

好用且免費的程式碼編輯器

SublimeText3漢化版

SublimeText3漢化版

中文版,非常好用

禪工作室 13.0.1

禪工作室 13.0.1

強大的PHP整合開發環境

Dreamweaver CS6

Dreamweaver CS6

視覺化網頁開發工具

SublimeText3 Mac版

SublimeText3 Mac版

神級程式碼編輯軟體(SublimeText3)

熱門話題

Java教學
1665
14
CakePHP 教程
1424
52
Laravel 教程
1322
25
PHP教程
1270
29
C# 教程
1250
24
PHP和Python:解釋了不同的範例 PHP和Python:解釋了不同的範例 Apr 18, 2025 am 12:26 AM

PHP主要是過程式編程,但也支持面向對象編程(OOP);Python支持多種範式,包括OOP、函數式和過程式編程。 PHP適合web開發,Python適用於多種應用,如數據分析和機器學習。

在PHP和Python之間進行選擇:指南 在PHP和Python之間進行選擇:指南 Apr 18, 2025 am 12:24 AM

PHP適合網頁開發和快速原型開發,Python適用於數據科學和機器學習。 1.PHP用於動態網頁開發,語法簡單,適合快速開發。 2.Python語法簡潔,適用於多領域,庫生態系統強大。

sublime怎麼運行代碼python sublime怎麼運行代碼python Apr 16, 2025 am 08:48 AM

在 Sublime Text 中運行 Python 代碼,需先安裝 Python 插件,再創建 .py 文件並編寫代碼,最後按 Ctrl B 運行代碼,輸出會在控制台中顯示。

Python vs. JavaScript:學習曲線和易用性 Python vs. JavaScript:學習曲線和易用性 Apr 16, 2025 am 12:12 AM

Python更適合初學者,學習曲線平緩,語法簡潔;JavaScript適合前端開發,學習曲線較陡,語法靈活。 1.Python語法直觀,適用於數據科學和後端開發。 2.JavaScript靈活,廣泛用於前端和服務器端編程。

PHP和Python:深入了解他們的歷史 PHP和Python:深入了解他們的歷史 Apr 18, 2025 am 12:25 AM

PHP起源於1994年,由RasmusLerdorf開發,最初用於跟踪網站訪問者,逐漸演變為服務器端腳本語言,廣泛應用於網頁開發。 Python由GuidovanRossum於1980年代末開發,1991年首次發布,強調代碼可讀性和簡潔性,適用於科學計算、數據分析等領域。

Golang vs. Python:性能和可伸縮性 Golang vs. Python:性能和可伸縮性 Apr 19, 2025 am 12:18 AM

Golang在性能和可擴展性方面優於Python。 1)Golang的編譯型特性和高效並發模型使其在高並發場景下表現出色。 2)Python作為解釋型語言,執行速度較慢,但通過工具如Cython可優化性能。

vscode在哪寫代碼 vscode在哪寫代碼 Apr 15, 2025 pm 09:54 PM

在 Visual Studio Code(VSCode)中編寫代碼簡單易行,只需安裝 VSCode、創建項目、選擇語言、創建文件、編寫代碼、保存並運行即可。 VSCode 的優點包括跨平台、免費開源、強大功能、擴展豐富,以及輕量快速。

notepad 怎麼運行python notepad 怎麼運行python Apr 16, 2025 pm 07:33 PM

在 Notepad 中運行 Python 代碼需要安裝 Python 可執行文件和 NppExec 插件。安裝 Python 並為其添加 PATH 後,在 NppExec 插件中配置命令為“python”、參數為“{CURRENT_DIRECTORY}{FILE_NAME}”,即可在 Notepad 中通過快捷鍵“F6”運行 Python 代碼。

See all articles