• <noscript id="e0iig"><kbd id="e0iig"></kbd></noscript>
  • <td id="e0iig"></td>
  • <option id="e0iig"></option>
  • <noscript id="e0iig"><source id="e0iig"></source></noscript>
  • 【Python】辦公篇-《極客Python之效率革命》(小甲魚) 筆記二

    標簽: python  

    〇、前情提要

    學習小甲魚的使用Python讀寫Excel文件。這是下篇。
    參考:

    1. 【辦公篇】《極客Python之效率革命》(小甲魚)https://www.bilibili.com/video/av23697305/?p=1

    ------------第一課------------

    1. [辦公] 使用Python讀寫Excel文件(1)
      https://fishc.com.cn/thread-101887-1-1.html
    2. [模塊檔案] openpyxl 模塊中文文檔(一個讀寫 EXCEL 文件的模塊)https://blog.csdn.net/weixin_43210113/article/details/107505405
    3. 爬取豆瓣 TOP250 電影排行榜
      https://fishc.com.cn/thread-94979-1-1.html
    4. 豆瓣電影 Top 250
      https://movie.douban.com/top250
    5. 我的筆記-【爬蟲篇】《極客Python之效率革命》(小甲魚) b站筆記
      https://blog.csdn.net/weixin_43210113/article/details/107505405

    ------------第二課------------

    1. [辦公] 使用Python讀寫Excel文件(2)
      https://fishc.com.cn/thread-102046-1-1.html

    ------------第三課------------

    1. [辦公] 使用Python讀寫Excel文件(3)
      https://fishc.com.cn/thread-102708-1-1.html

    ------------第四課------------

    1. [辦公] 使用Python讀寫Excel文件(4)
      https://fishc.com.cn/thread-103472-1-1.html

    ------------第五課------------

    1. [辦公] 使用Python讀寫Excel文件(5)
      https://fishc.com.cn/thread-103980-1-1.html

    ------------第六課------------

    1. [辦公] 使用Python讀寫Excel文件(6)
      https://fishc.com.cn/forum.php?mod=viewthread&tid=141918&extra=page%3D1%26filter%3Dtypeid%26typeid%3D722

    我的筆記:

    1. 【Python】辦公篇-《極客Python之效率革命》(小甲魚) 筆記一
      https://blog.csdn.net/weixin_43210113/article/details/107548337
    2. 【Python】辦公篇-《極客Python之效率革命》(小甲魚) 筆記二
      https://blog.csdn.net/weixin_43210113/article/details/107564712

    提示:

    • wb為workbook,wb["sheetname"]表示選中一張worksheet
    • ws為worksheet,ws['A1']表示選中一個單元格
    • 由于視頻錄制年份較早,現在的語句都會有DeprecationWarning: Call to deprecated function 過時的語句 (Use 推薦的語句).提示,可根據自身需求來使用
    • 由于權限問題,請關閉excel表后再save
    • 有些內容不如在excel表中直接修改,但量大時使用python會很有效

    四、P4 使用Python讀寫Excel文件(4)

    在這里插入圖片描述

    設置單元格字體

    openpyxl.styles

    • name:字體名稱
    • size:字體尺寸
    • bold:True(加粗)/ False(不加粗)
    • italic:True(傾斜)/ False(不傾斜)
    • vertAlign:‘None’(默認)/ ‘superscript’(上標)/ ‘subscript’(下標)
    • underline:‘None’(默認)/ ‘single’(單下劃線)/ ‘double’(雙下劃線)/‘singleAccounting’(會計用單下劃線)/‘doubleAccounting’(會計用雙下劃線)
    • strike:‘True’(顯示刪除線)/ ‘False’(不顯示刪除線)
    • List item

    color:字體的顏色

    >>> from openpyxl import Workbook
    >>> from openpyxl.styles import Font
    >>> 
    >>> wb = Workbook()
    >>> ws = wb.active
    >>> 
    >>> b2 = ws['B2']
    >>> b2.value = "FishC"
    >>> bold_red_font = Font(bold=True, color="FF0000")
    >>> b2.font = bold_red_font
    >>> 
    >>> b3 = ws['B3']
    >>> b3.value = "FishC"
    >>> italic_strike_blue_16_font = Font(italic=True, strike=True, color="0000FF", size=16)
    >>> b3.font = italic_strike_blue_16_font
    >>> 
    >>> wb.save(r"路徑")
    

    在這里插入圖片描述

    填充單元格

    PatternFill

    • fill_type:填充類型
    • start_color / fgColor:背景顏色
    • end_color / bgColor:圖案顏色

    在這里插入圖片描述
    純色填充

    >>> from openpyxl.styles import PatternFill
    >>> 
    >>> yellow_fill = PatternFill(fill_type="solid", fgColor="FFFF00")
    >>> b2.fill = yellow_fill
    >>> 
    >>> wb.save(r"路徑")
    

    在這里插入圖片描述
    漸變色填充
    GradientFill

    • fill_type:‘linear’(線性漸變)/ ‘path’(中心擴散)
    • degree:旋轉角度
    • stop:一個元組 (OO, XX),OO 為起始顏色,XX 為結束顏色
    >>> from openpyxl.styles import GradientFill
    >>> 
    >>> red2green_fill = GradientFill(fill_type="linear", stop=("FF0000", "00FF00"))
    >>> b3.fill = red2green_fill
    >>> 
    >>> wb.save(r"路徑")
    

    設置邊框

    Border

    • left:指定左側邊框線類型和顏色
    • right:指定右側邊框線類型和顏色
    • top:指定頂端邊框線類型和顏色
    • bottom:指定低端邊框線類型和顏色
    • diagonal:指定對角線類型和顏色
    • diagonalUp:是否繪制左下角到右上角的對角線
    • diagonalDown:是否繪制左上角到右下角的對角線
    • diagonal_direction:指定對角線方向
    • outline:指定輪廓線類型和顏色
    • vertical:指定垂直線類型和顏色
    • horizontal:指定水平線類型和顏色
    >>> from openpyxl.styles import Border, Side
    >>> 
    >>> thin_side = Side(border_style="thin", color="000000")
    >>> double_side = Side(border_style="double", color="FF0000")
    >>> 
    >>> b2.border = Border(diagonal=thin_side, diagonalUp=True, diagonalDown=True)
    >>> b3.border = Border(left=double_side, top=double_side, right=double_side, bottom=double_side)
    >>> 
    >>> wb.save(r"路徑")
    

    在這里插入圖片描述

    文本對齊

    Alignment

    • horizontal:‘general’(常規)/ ‘justify’(兩端對齊)/ ‘right’(靠右)/ ‘centerContinuous’(跨列居中)/ ‘distributed’(分散對齊)/ ‘fill’(填充)/ ‘center’(居中)/ ‘left’(靠左)
    • vertical:‘center’(垂直居中)/ ‘top’(靠上)/ ‘bottom’(靠下)/ ‘justify’(兩端對齊)/ ‘distributed’(分散對齊)
    • text_rotation:指定文本旋轉角度
    • wrap_text:是否自動換行
    • shrink_to_fit:是否縮小字體填充
    • indent:指定縮進
    >>> from openpyxl.styles import Alignment
    >>> 
    >>> ws.merge_cells('A1:C2')
    >>> ws['A1'].value = "I love FishC.com"
    >>> 
    >>> center_alignment = Alignment(horizontal='center', vertical='center')
    >>> ws['A1'].alignment = center_alignment
    >>> 
    >>> wb.save(r"路徑")
    

    雖然 ‘B2’ 中存在數據和樣式,但在合并后均會被 ‘A1’ 單元格所覆蓋
    在這里插入圖片描述

    命名樣式

    >>> from openpyxl.styles import NamedStyle
    >>> 
    >>> highlight = NamedStyle(name="highlight") #實例化一個 NamedStyle 類
    >>> highlight.font = Font(bold=True, size=20)#初始化命名樣式
    >>> highlight.alignment = Alignment(horizontal='center', vertical='center')
    >>> 
    >>> wb.add_named_style(highlight)#注冊命名樣式到工作簿中
    >>> 
    >>> ws['A1'].style = highlight #將單元格的 style 屬性賦值為命名樣式
    >>> 
    >>> ws['B5'].value = "LOVE"
    >>> ws['B5'].style = highlight
    >>> wb.save(r"路徑")
    

    在這里插入圖片描述


    五、P5 使用Python讀寫Excel文件(5)

    數字格式

    Excel 只有 2 種數據類型:一種是文本,另一種是數字

    >>> import openpyxl
    >>> 
    >>> wb = openpyxl.Workbook()
    >>> ws = wb.active
    >>> 
    >>> ws.append(['文本', '數字'])
    >>> ws['A2'] = '520'
    >>> ws['B2'] = 520
    >>> 
    >>> wb.save(r"C:\Users\goodb\Desktop\test.xlsx")
    

    文本左對齊,數字右對齊。
    在這里插入圖片描述

    自定義格式

    在這里插入圖片描述

    import openpyxl
    import datetime
    
    wb = openpyxl.Workbook()
    ws = wb.active
    
    ws['A1'].number_format = "#,###.00元"
    ws['A1'] = 88.8
    
    ws['A2'] = datetime.datetime.today()
    ws['A2'].number_format = "yyyy-mm-dd"
    
    wb.save(r"路徑")
    

    彩色自定義

    正值;負值;零值;文本

    import openpyxl
    from openpyxl.styles.colors import RED, GREEN, BLUE, YELLOW
    
    wb = openpyxl.Workbook()
    ws = wb.active
    
    ws['A1'].number_format = "[RED]+#,###.00;[GREEN]-#,###.00"
    ws['A1'] = 99
    
    ws['A2'].number_format = "[RED]+#,###.00;[GREEN]-#,###.00"
    ws['A2'] = -99
    
    ws['A3'].number_format = "[RED];[GREEN];[BLUE];[YELLOW]"
    ws['A3'] = 0
    
    ws['A4'].number_format = "[RED];[GREEN];[BLUE];[YELLOW]"
    ws['A4'] = "FishC"
    
    wb.save(r"路徑")
    

    在這里插入圖片描述

    自動替換

    ws['A5'].number_format = "[=1]男;[=0]女"
    ws['A5'] = 0
    
    ws['A6'].number_format = "[=1]男;[=0]女"
    ws['A6'] = 1
    
    ws['A7'].number_format = "[=1]男;[=0]女"
    ws['A7'] = 2
    
    ws['A8'].number_format = "[<60][RED]不及格;[>=60][GREEN]及格"
    ws['A8'] = 58
    
    ws['A9'].number_format = "[<60][RED]不及格;[>=60][GREEN]及格"
    ws['A9'] = 68
    

    在這里插入圖片描述


    六、P6 使用Python讀寫Excel文件(6)

    檢查函數公式

    >>> from openpyxl.utils import FORMULAE
    >>> "SUM" in FORMULAE
    True
    >>> "SAM" in FORMULAE
    False
    

    SUM測試

    =SUM(B2:D2)
    在這里插入圖片描述
    每一個row為一個元組
    在這里插入圖片描述

    >>> from openpyxl import load_workbook
    >>> wb = load_workbook(filename = r"路徑")
    >>> ws = wb["Sheet"]
    >>> for row in ws.iter_rows(min_col=2, min_row=2, max_col=5, max_row=5):
            ws[row[3].coordinate] = "=SUM(%s:%s)" % (row[0].coordinate, row[2].coordinate)
    >>> wb.save(r"路徑")
    

    在這里插入圖片描述

    if函數

    在這里插入圖片描述
    在這里插入圖片描述
    '=IF(%s>250,"A","B")'一定要外’'內""

    >>> from openpyxl.styles import Alignment
    >>> center_alignment = Alignment(horizontal='center')
    >>> for row in ws.iter_rows(min_col=2, min_row=2, max_col=6, max_row=5):
            ws[row[4].coordinate] = '=IF(%s>250,"A","B")' % (row[3].coordinate)
            ws[row[4].coordinate].alignment = center_alignment
    
    >>> wb.save(r"路徑")
    

    LOOKUP

    在這里插入圖片描述
    語法:=LOOKUP(lookup_value, lookup_vector, [result_vector])

    >>> ws['I2'] = "=LOOKUP(H2, D2:D5, A2:A5)"
    

    在這里插入圖片描述

    VLOOKUP

    =VLOOKUP (lookup_value, table_array, col_index_num, [range_lookup])

    • lookup_value:指定待查找的值,也稱為查閱值。
    • table_array:指定待查找的值所在的區域。注意,查閱值應該始終位于所在區域的第一列,這樣 VLOOKUP 才能正常工作(例如,如果查閱值位于單元格 C2 內,那么您的區域應該以 C 開頭)。
    • col_index_num:指定區域中包含返回值的列號(例如,如果指定 B2:D11 作為區域,那么應該將 B 算作第一列,C 作為第二列,以此類推)。
    • [range_lookup](可選)如果需要返回值的近似匹配,可以指定 TRUE;如果需要返回值的精確匹配,則指定 FALSE。如果沒有指定任何內容,默認值將始終為 TRUE。
    ws['I2'] = "=VLOOKUP(H2, A:F, 5, FALSE)"
    

    在這里插入圖片描述


    版權聲明:本文為weixin_43210113原創文章,遵循 CC 4.0 BY-SA 版權協議,轉載請附上原文出處鏈接和本聲明。
    本文鏈接:https://blog.csdn.net/weixin_43210113/article/details/107564712

    智能推薦

    跟小甲魚自學python筆記 更新中…

    看完這些筆記自己就可以入門Python了 在B站上看小甲魚的視頻,順便整理一下自己的筆記。 第十課 列表 1、列表中可以存放一些什么東西?       在列表中可以存放整數、浮點數、字符串、對象…甲魚粉說Python列表是一個打了激素的數組,如果把數組比喻成集裝箱,那么Python列表就是一個大倉庫,Ta可以存放我們已經學習...

    小甲魚python視頻的筆記【斜杠派】

    我就不設置導航了,要是直接看某一節的筆記,按ctrl+F,搜號碼吧。 這個是斜杠達人的微信公眾號: 斜杠達人→→→←←←斜杠達人 001 我和Python的第一次接觸 使用的Python版本:3.3.2 IDLE是一個Python shell print("I love fishc.com")    ...

    【小甲魚python】Tkinter學習筆記5-6

    1.1 選中便刪除 1.2 當需要下拉才能瀏覽完所有選項時的解決方法 1.3 添加滾動條 為了在某個組件上安裝垂直滾動條,你需要做兩件事: 1.設置該組件的yscrollbarcommand選項為Scrollbar組件的set()方法 2.設置Scrollbar組件的command選項為該組件的yview()方法 1.4 1.5 獲取刻度位置 1.6 2.1 2.2...

    Python小甲魚學習筆記01-05

    01開始 一.IDLE 二.print() 1.print() 的作用是什么? print() 會在輸出窗口中顯示一些文本(在這一講中,輸出窗口就是IDLE shell窗口)。 2.例子:print(5+2) print(‘well’ + ‘water’) print(‘good’ * 7) print(‘good...

    猜你喜歡

    Python小甲魚學習筆記11-15

    11列表2 一、從列表中獲取元素 二、從列表刪除元素 三、列表分片 四、課后題 1.請問 list1[0] 和 list1[0:1] 一樣嗎?   不一樣,list1[0]返回第0個元素的值,list1[0:1]返回一個只含有第0個元素的列表。    2.如果你每次想從列表的末尾取出一個元素,并將這個元素插入到列表的最前邊,你會怎么做?  &ems...

    HTML中常用操作關于:頁面跳轉,空格

    1.頁面跳轉 2.空格的代替符...

    freemarker + ItextRender 根據模板生成PDF文件

    1. 制作模板 2. 獲取模板,并將所獲取的數據加載生成html文件 2. 生成PDF文件 其中由兩個地方需要注意,都是關于獲取文件路徑的問題,由于項目部署的時候是打包成jar包形式,所以在開發過程中時直接安照傳統的獲取方法沒有一點文件,但是當打包后部署,總是出錯。于是參考網上文章,先將文件讀出來到項目的臨時目錄下,然后再按正常方式加載該臨時文件; 還有一個問題至今沒有解決,就是關于生成PDF文件...

    電腦空間不夠了?教你一個小秒招快速清理 Docker 占用的磁盤空間!

    Docker 很占用空間,每當我們運行容器、拉取鏡像、部署應用、構建自己的鏡像時,我們的磁盤空間會被大量占用。 如果你也被這個問題所困擾,咱們就一起看一下 Docker 是如何使用磁盤空間的,以及如何回收。 docker 占用的空間可以通過下面的命令查看: TYPE 列出了docker 使用磁盤的 4 種類型: Images:所有鏡像占用的空間,包括拉取下來的鏡像,和本地構建的。 Con...

    requests實現全自動PPT模板

    http://www.1ppt.com/moban/ 可以免費的下載PPT模板,當然如果要人工一個個下,還是挺麻煩的,我們可以利用requests輕松下載 訪問這個主頁,我們可以看到下面的樣式 點每一個PPT模板的圖片,我們可以進入到詳細的信息頁面,翻到下面,我們可以看到對應的下載地址 點擊這個下載的按鈕,我們便可以下載對應的PPT壓縮包 那我們就開始做吧 首先,查看網頁的源代碼,我們可以看到每一...

    精品国产乱码久久久久久蜜桃不卡