最新国产好看的视频,伊人天堂AV在线,国产Aaaaaa视频,蜜臀视频在线观看一区,人妻av色图,密臀久久久精品影片,青青视频免费观看毛片,久草在线观看视,国产三级精品色情在线

Python 對Excel求和、合并居中的操作

 更新時間:2021年03月16日 10:33:38   作者:詩和遠方  
這篇文章主要介紹了Python 對Excel求和、合并居中的操作,具有很好的參考價值,希望對大家有所幫助。一起跟隨小編過來看看吧

需求

原始表格:

想在Total列中對每日的Amount進行匯總,然后對Date和Total進行合并居中,效果如下:

思路

遍歷Excel行,從第一個非空Date列開始,到下個非空Date列,對Amount列進行求和,結果賦給第一個非空Data列對應行的Total列。

代碼

import os
import openpyxl
from openpyxl.styles import Border, Side, PatternFill, Font, GradientFill, Alignment
def range_sum(worksheet,start,end):
  sum = 0
  for row in worksheet[start:end]:
    for cell in row:
      if cell.value != None:
        sum += cell.value
  return sum
def is_blank_row(worksheet,row_num,max_col=None):
  if not max_col:
    max_col = worksheet.max_column 
  for cell in worksheet[row_num][:max_col]:
    if cell.value:
      return False
  return True
def total_amount(worksheet):
  """ 對某sheet的A、E列合并居中,并對E列求和 """
  ws = worksheet
  row, max_row = 4, ws.max_row
  while row < ws.max_row:
    sum_row_start, sum_row_end = row, row
    for working_row in range(row + 1,max_row + 2):
      if (not is_blank_row(worksheet, working_row-1) # 上一行有值
         and (ws[f'A{working_row}'].value or is_blank_row(worksheet, working_row))): # A列有值 或 當前為空行(最后一次合并)
          # 求和
          sum_row_end = working_row - 1
          ws[f'E{sum_row_start}'] = range_sum(ws,f'C{sum_row_start}',f'C{sum_row_end}')
          # 合并居中
          ws[f'E{sum_row_start}'].alignment = Alignment(horizontal="center", vertical="center")
          ws[f'A{sum_row_start}'].alignment = Alignment(horizontal="center", vertical="center")
          ws.merge_cells(f'E{sum_row_start}:E{sum_row_end}')
          ws.merge_cells(f'A{sum_row_start}:A{sum_row_end}')
          break
    row = sum_row_end + 1
def main():
  # 根據情況修改代碼
  in_file_name = 'In.xlsx'
  processing_sheet = 'Sheet1'
  path_name = 'D:\\Users\\Desktop\\Temp'
  out_file_name = 'Out.xlsx'
  wb = openpyxl.load_workbook(filename=os.path.join(path_name,in_file_name))
  total_amount(wb[processing_sheet])
  wb.save(os.path.join(path_name,out_file_name))
if __name__=='__main__':
  main()

說明

本功能用到了openpyxl模塊,更多Excel操作請見官網

本代碼不支持Excel中間有空行的情況,最后有空行無影響

f'A{sum_row_start}'這樣的代碼用到了f-string功能,若python版本低于3.6,需改為'A'+str(sum_row_start)或其它形式

補充:Python3 Pandas DataFrame 對某一列求和

在操作pandas的DataFrame的時候,常常會遇到某些列是字符串,某一些列是數值的情況,如果直接使用df_obj.apply(sum)往往會出錯

使用如下方式即可對其中某一列進行求和

dataf_test1['diff'].sum() // diff為要求和的列

以上為個人經驗,希望能給大家一個參考,也希望大家多多支持腳本之家。如有錯誤或未考慮完全的地方,望不吝賜教。

相關文章

  • Python?循環(huán)結構詳解

    Python?循環(huán)結構詳解

    這篇文章主要介紹了Python?循環(huán)結構,程序的循環(huán)結構邏輯,循環(huán)就是按照一定的條件重復的去做一件事情,當條件不成立時就結束循環(huán)的內容,需要的小伙伴一起和小編一起進入下面文章學習吧
    2022-02-02
  • Python  OpenCV實現攝像頭人臉識別功能

    Python  OpenCV實現攝像頭人臉識別功能

    這篇文章主要介紹了Python  OpenCV實現攝像頭人臉識別,使用Python 3和OpenCV進行攝像頭人臉識別的基本步驟,本文結合實例代碼給大家介紹的非常詳細,需要的朋友可以參考下
    2023-07-07
  • python Pandas中數據的合并與分組聚合

    python Pandas中數據的合并與分組聚合

    大家好,本篇文章主要講的是python Pandas中數據的合并與分組聚合,感興趣的同學趕快來看一看吧,對你有幫助的話記得收藏一下
    2022-01-01
  • 使用Python中的Argparse實現將列表作為命令行參數傳遞

    使用Python中的Argparse實現將列表作為命令行參數傳遞

    Argparse?是一個?Python?庫,用于以用戶友好的方式解析命令行參數,本文我們將討論如何使用?Python?中的?Argparse?庫將列表作為命令行參數傳遞,感興趣的可以了解下
    2023-08-08
  • Python3.7黑帽編程之病毒篇(基礎篇)

    Python3.7黑帽編程之病毒篇(基礎篇)

    這篇文章主要介紹了Python3.7黑帽編程之病毒篇(基礎篇),文中通過示例代碼介紹的非常詳細,對大家的學習或者工作具有一定的參考學習價值,需要的朋友們下面隨著小編來一起學習學習吧
    2020-02-02
  • Django日志和調試工具欄實現高效的應用程序調試和性能優(yōu)化

    Django日志和調試工具欄實現高效的應用程序調試和性能優(yōu)化

    這篇文章主要介紹了Django日志和調試工具欄實現高效的應用程序調試和性能優(yōu)化,Django日志和調試工具欄為開發(fā)者提供了快速定位應用程序問題的工具,可提高調試和性能優(yōu)化效率,提高應用程序的可靠性和可維護性
    2023-05-05
  • Python2.7基于笛卡爾積算法實現N個數組的排列組合運算示例

    Python2.7基于笛卡爾積算法實現N個數組的排列組合運算示例

    這篇文章主要介紹了Python2.7基于笛卡爾積算法實現N個數組的排列組合運算,涉及Python笛卡爾積算法及排列組合操作相關實現技巧,需要的朋友可以參考下
    2017-11-11
  • 深入講解Python命令行解析模塊argparse

    深入講解Python命令行解析模塊argparse

    Python?提供了一個解析命令行參數的標準庫?argparse,可以讓我們輕松編寫用戶友好的命令行接口,接下來我們就來詳細介紹一下argparse?的使用方法吧
    2023-06-06
  • Python實現抓取百度搜索結果頁的網站標題信息

    Python實現抓取百度搜索結果頁的網站標題信息

    這篇文章主要介紹了Python實現抓取百度搜索結果頁的網站標題信息,本文使用BeautifulSoup來解析HTML,需要的朋友可以參考下
    2015-01-01
  • Python+OpenCV實現旋轉文本校正方式

    Python+OpenCV實現旋轉文本校正方式

    今天小編就為大家分享一篇Python+OpenCV實現旋轉文本校正方式,具有很好的參考價值,希望對大家有所幫助。一起跟隨小編過來看看吧
    2020-01-01

最新評論

定边县| 湖口县| 张家界市| 兴宁市| 故城县| 黎城县| 五河县| 云林县| 达孜县| 灯塔市| 贡觉县| 巫溪县| 庆城县| 攀枝花市| 沅陵县| 岳阳县| 彩票| 漳浦县| 盐池县| 分宜县| 北辰区| 白山市| 天峻县| 永善县| 循化| 蒙山县| 广饶县| 南漳县| 绵阳市| 海城市| 马尔康县| 西城区| 育儿| 承德市| 昌吉市| 左权县| 嘉峪关市| 湾仔区| 大厂| 乌恰县| 黑龙江省|