<kbd id="afajh"><form id="afajh"></form></kbd>
<strong id="afajh"><dl id="afajh"></dl></strong>
    <del id="afajh"><form id="afajh"></form></del>
        1. <th id="afajh"><progress id="afajh"></progress></th>
          <b id="afajh"><abbr id="afajh"></abbr></b>
          <th id="afajh"><progress id="afajh"></progress></th>

          10分鐘學會用Python輕松玩轉(zhuǎn)Excel

          共 3357字,需瀏覽 7分鐘

           ·

          2021-12-18 05:49

          前言

          當你需要每天對 Excel 做大量重復的操作,如果只靠人工來做既浪費時間,又十分枯燥,好在 Python 為我們提供了許多操作 Excel 的模塊,能夠讓我們從繁瑣的工作中騰出雙手。

          今天就和大家分享一個快速處理 Excel 的模塊 openpyxl,它的功能相對與其他模塊更為齊全,足夠應對日常出現(xiàn)的問題。

          openpyxl 安裝

          直接在命令提示符中輸入。

          pip?install?openpyxl

          或使用豆瓣鏡像安裝。

          pip?install?-i?https://pypi.douban.com/simple?openpyxl

          安裝成功后,下面就看看如何使用

          打開/創(chuàng)建工作簿

          「示例工作簿」工作表【一等獎】工作表【二等獎】

          (1)打開本地工作簿

          >>>?from?openpyxl?import?load_workbook
          >>>?wb?=?load_workbook('獲獎名單.xlsx')

          (2)創(chuàng)建空的工作薄

          >>>?from?openpyxl?import?Workbook
          >>>?wb1?=?Workbook()

          訪問工作表

          創(chuàng)建新工作表,可指定插入的位置(0:首位,-1:末尾)。

          >>>?wb.create_sheet('new_sheet',?0)
          "new_sheet">

          獲取工作簿中所有工作表。

          >>>?wb.sheetnames
          ['new_sheet',?'一等獎',?'二等獎']

          使用列表推導式遍歷獲取所有工作表名稱。

          >>>?[sheet.title?for?sheet?in?wb]
          ['new_sheet',?'一等獎',?'二等獎']

          使用 wb[sheetname] 來獲取一個工作表對象

          >>>?wb['二等獎']
          "二等獎">

          獲取活動表(即打開工作簿首先出現(xiàn)的工作表)。

          >>>?wb.active
          "一等獎">

          獲取工作表行列信息。

          >>>?sheet1?=?wb['一等獎']
          >>>?sheet1.max_column
          7
          >>>?sheet1.max_row
          6

          獲取單元格信息

          訪問某個單元格

          >>>?sheet1['D3']
          '一等獎'.D3>
          >>>?sheet1.cell(row=3,?column=4)
          '一等獎'.D3>

          如果訪問單元格式添加 value 參數(shù)則會修改當前單元格的值。

          >>>?sheet1.cell(3,?4).value
          '基于Spark、Python的醫(yī)護人員信息抽取與管理'
          >>>?sheet1.cell(3,?4,?value='Python')
          '一等獎'.D3>
          >>>?sheet1.cell(3,?4).value
          'Python'

          獲取單元格的值、坐標、行索引、列索引。

          >>>?sheet1['D3'].value
          'Python'
          >>>?sheet1['D3'].coordinate
          'D3'
          >>>?sheet1['D3'].row
          3
          >>>?sheet1['D3'].column
          4

          訪問多個單元格

          使用切片來訪問多個單元格,這里的切片與列表切片有區(qū)別,列表切片是「前閉后開」,Excel 中的切片是「前閉后閉」

          (1)選取 A1:B2 區(qū)域的單元格。

          >>>?sheet1['A1':'B2']
          (('一等獎'.A1>,
          ??'一等獎'.B1>),
          ?('一等獎'.A2>,
          ??'一等獎'.B2>))

          選取單列數(shù)據(jù)。

          >>>?sheet1['D']
          ('一等獎'.D1>,
          ????...
          ?'一等獎'.D6>)

          選取B,C列數(shù)據(jù)。

          ?>>>?sheet1['B:C']
          (('一等獎'.B1>,
          ????...
          ??'一等獎'.B6>),
          ?('一等獎'.C1>,
          ????...
          ??'一等獎'.C6>))

          選取單行數(shù)據(jù)。

          >>>?sheet1[3]
          ('一等獎'.A3>,
          ?'一等獎'.B3>,
          ????...
          ?'一等獎'.F3>,
          ?'一等獎'.G3>)

          選取第2,3行數(shù)據(jù)。

          >>>?sheet1[2:3]
          (('一等獎'.A2>,
          ????...
          ??'一等獎'.G2>),
          ?('一等獎'.A3>,
          ????...
          ??'一等獎'.G3>))

          遍歷獲取數(shù)據(jù)

          按行遍歷指定范圍(B2:C3)數(shù)據(jù)。

          >>>?for?row?in??sheet1.iter_rows(min_row=2,?max_row=3,?min_col=2,?max_col=3):
          ????????for?cell?in??row:
          ????????????print(cell.coordinate)

          B2
          C2
          B3
          C3

          按列遍歷指定范圍(B2:C3)數(shù)據(jù)。

          >>>?for?col?in??sheet1.iter_cols(min_row=2,?max_row=3,?min_col=2,?max_col=3):
          ????????for?cell?in?col:
          ????????????print(cell.coordinate)

          B2
          B3
          C2
          C3

          如果 iter_rows()/iter_cols() 中指定參數(shù) values_only=True,那么將只返回單元格的值

          按行遍歷所有數(shù)據(jù)。

          >>>?tuple(sheet1.rows)
          (('一等獎'.A1>,
          ??...
          ??'一等獎'.G1>),
          ??...
          ??...
          ?('一等獎'.A6>,
          ??...
          ??'一等獎'.G6>))

          按列遍歷所有數(shù)據(jù)。

          >>>?tuple(sheet1.columns)
          (('一等獎'.A1>,
          ??...
          ??'一等獎'.A6>),
          ??...
          ??...
          ?('一等獎'.G1>,?
          ??...
          ??'一等獎'.G6>))

          修改工作表

          單元格賦值

          新增一列計算 作者 人數(shù)。

          >>>?for?row_index?in?range(2,?sheet1.max_row?+?1):
          ???????sheet1.cell(row_index,?8).value?=?len(sheet1.cell(row_index,?6).value.split(','))

          使用公式給單元格賦值,H7 統(tǒng)計作者總?cè)藬?shù)。

          >>>?sheet1['H7']?=?'=SUM(H1:H6)'

          追加一行數(shù)據(jù)

          使用列表按序傳入值。

          >>>?sheet1.append([str(n)?for?n?in?range(6)])

          使用字典指定 列索引:列值

          >>>?sheet1.append({'A':'1','C':'3'})

          插入空白行

          在指定位置插入空白行, idx 行索引,插入的位置;amount 插入空白行的數(shù)量

          >>>?sheet1.insert_rows(idx=2,?amount=2)

          刪除工作表

          >>>?wb.remove(wb['new_sheet'])

          保存工作簿

          >>>?wb.save('獲獎名單V1.xlsx')

          修改樣式

          字體

          設置 B2 單元格字體格式為,顏色可以用十六進制顏色代碼。

          >>>?from?openpyxl.styles?import?Font

          >>>?new_font?=?Font(name='微軟雅黑',?size=20,?color='3333CC',?bold=True)
          >>>?sheet1['B2'].font?=?new_font

          單元格背景顏色

          >>>?from?openpyxl.styles?import?PatternFill,?colors
          >>>?sheet1["A2"].fill?=?PatternFill("solid",?fgColor=colors.BLUE)
          >>>?sheet1["A3"].fill?=?PatternFill("solid",?fgColor='FF66CC')

          對齊方式

          設置 D2 中的數(shù)據(jù) 垂直居中水平居中

          >>>?from?openpyxl.styles?import?Alignment
          >>>?sheet1['D2'].alignment?=?Alignment(horizontal='center',?vertical='center')

          行高/列寬

          設置第2行行高為40,C列列寬為20。

          >>>?sheet1.row_dimensions[2].height?=?40
          >>>?sheet1.column_dimensions['C'].width?=?20

          合并/拆分單元格

          合并單元格只需要指定左上角和右下角的單元格坐標。

          >>>?sheet.merge_cells('A1:C3')

          拆分單元格后,合并區(qū)域的值會賦給左上角單元格A1。

          >>>?sheet.unmerge_cells('A1:C3')
          對比Excel系列圖書累積銷量達15w冊,讓你輕松掌握數(shù)據(jù)分析技能,感興趣的同學可以直接在各大電商平臺搜索書名了解:

          瀏覽 50
          點贊
          評論
          收藏
          分享

          手機掃一掃分享

          分享
          舉報
          評論
          圖片
          表情
          推薦
          點贊
          評論
          收藏
          分享

          手機掃一掃分享

          分享
          舉報
          <kbd id="afajh"><form id="afajh"></form></kbd>
          <strong id="afajh"><dl id="afajh"></dl></strong>
            <del id="afajh"><form id="afajh"></form></del>
                1. <th id="afajh"><progress id="afajh"></progress></th>
                  <b id="afajh"><abbr id="afajh"></abbr></b>
                  <th id="afajh"><progress id="afajh"></progress></th>
                  亚洲热视频在线观看 | 亚洲成人视频免费观看 | 黄色电影av网站 黄色黄色1级a片 黄色免费日本欧美 | 欧美动态视频 | 激情丁香五月婷婷 |