日本免费高清视频-国产福利视频导航-黄色在线播放国产-天天操天天操天天操天天操|www.shdianci.com

學無先后,達者為師

網站首頁 編程語言 正文

python寫入Excel表格的方法詳解_python

作者:勝天半月子 ? 更新時間: 2022-04-11 編程語言

一、寫入Excel數據

週用openpyxl也提供了一些方法寫入數據,這意味著你的程序可以創建和編輯電子表格文件。利用Python創建一個包含幾千行數據的電子表格是非常簡單的。

週用openpyxl.Workbook()函數,創建一個新的空Workbook對象

本章節所有代碼均在jupyter notebook中完成

創建一個新的工作簿對象

import openpyxl
wb = openpyxl.Workbook()
wb

<openpyxl.workbook.workbook.Workbook at 0x22473ff4da0>

獲取工作表名稱

# 查看默認的工作表的名稱
wb.sheetnames

[‘Sheet’]

給工作表設置名稱

# 查看默認的工作表的名稱
wb.sheetnames

[‘跟進記錄表’]

保存工作表

wb.save('./data/第一個工作簿.xlsx') # 需要給路徑地址

在這里插入圖片描述

創建和刪除工作表

  • 利用create_sheet?和del語法,可以在工作簿中添加或刪除工作表,
  • 在工作簿中添加或刪除工作表之后,記得調用save()方法來保存變更。

創建sheet

wb = openpyxl.load_workbook('./data/第一個工作簿.xlsx')
wb.create_sheet(title='銷售記錄')

<Worksheet “銷售記錄”>

wb.sheetnames

[‘跟進記錄表’, ‘銷售記錄’]

wb.create_sheet(index=1,title='養殖技術') # index表示新創建的工作簿放在第幾個位置   index從0開始計數

<Worksheet “養殖技術”>

wb.sheetnames  # 0 1 2 從0開始計數

[‘跟進記錄表’, ‘養殖技術’, ‘銷售記錄’]

刪除sheet表

del wb['養殖技術']
wb.sheetnames 

[‘跟進記錄表’, ‘銷售記錄’]

wb.save('./data/第一個工作簿.xlsx')

在這里插入圖片描述

千萬記住:只有save()后打開Excel表格你做的操作才會顯示

將值寫入單元格

  • 將值寫入單元格,很像將值寫入字典中的鍵
  • 如果你有單元格坐標的字符串,可以像字典的鍵一樣,將它用于Worksheet對象,指定要寫入的單元格。
  • 最后使用save()進行保存
sheet = wb['銷售記錄'] 
sheet['A1'] = 'HELLO'
sheet['B2'] = 'world'
wb.save('./data/第一個工作簿.xlsx')  # 操作之后一定要保存

在這里插入圖片描述

二、項目:更新一個電子表格

2.1 案例需求

獲取資源:produceSales.xlsx 提取碼: ge7k

這個項目需要編寫一個程序,更新產品銷售電子表格中的單元格,程序將遍歷這個電子表格,找到特定類型的產品,并更新它們的價格

數據說明

  • 每一行代表一次單獨的銷售。列分別是銷售產品的類型(A)、產品每磅的價格(B)、銷售的磅數(C),以及這次銷售的總收入(D).TOTAL列已經設置為Excel公式,將每磅的成本乘以銷售的磅數,并將結果取整到分。有了這個公式,如果列B或C發生變化,TOTAL列中的單元格將自動更新
  • 現在假設Garlic,Celery和Lemons的價格輸入的不正確。這讓你面對一項無聊的任務:遍歷這個電子表格中的幾萬行,更新所有garlic.celery和lemon行中每磅的價格。你不能簡單地對價格查找替換,因為可能有其他的產品價格一樣,你不希望錯誤地"更正"。對于幾萬行數據,手工操作可能要幾小時。但你可以編寫程序,幾秒鐘內完成這個任務。

你的程序做下面的事情

  • 循環追歷所有行。
  • 如果該行是Garlic,Celery或Lemons,更新價格。

這意味著代碼需要做下面的事情:

  • 打開電子表格文件。
  • 針對每一行,檢查列A的值是不是Celery,Garlic或Lemon,如果是,更新列B中的價格。將該電子表格保存為一個新文件(這樣就不會丟失原來的電子表格,以防萬一)

需要更新的價格如下

  • Celery 1.19
  • Garlic 3.07
  • Lemon 1.27

在這里插入圖片描述

2.2 案例源碼

import openpyxl
print('openning...')
wb = openpyxl.load_workbook('./data/produceSales.xlsx')
sheet = wb['Sheet']
 
# The produce types and their updated prices
PRICE_UPDATES = {'Garlic': 3.07,
                 'Celery': 1.19,
                 'Lemon': 1.27}
 
# Loop through the rows and update the prices.
for rowNum in range(2, sheet.max_row + 1):
    # 取出第一列商品的名稱
    produceName = sheet.cell(row=rowNum, column=1).value
    # 如果取出的商品名稱在字典中 則需要修改
    if produceName in PRICE_UPDATES:
        sheet.cell(row=rowNum, column=2).value = PRICE_UPDATES[produceName]


wb.save('./data/updateProduceSales.xlsx')
print('finishing...')

總結

原文鏈接:https://blog.csdn.net/HG0724/article/details/122569233

欄目分類
最近更新