Python如何实现Excel求和,合并居中的操作示例

  介绍

这篇文章主要介绍了Python如何实现Excel求和,合并居中的操作示例,具有一定借鉴价值,感兴趣的朋友可以参考下,希望大家阅读完这篇文章之后大有收获、下面让小编带着大家一起了解一下。

需求

原始表格:

 Python如何实现Excel求和,合并居中的操作示例

想在总列中对每日的数量进行汇总,然后对日期和总进行合并居中,效果如下:

 Python如何实现Excel求和,合并居中的操作示例

思路

遍历Excel行,从第一个非空日期列开始,到下个非空日期列,对金额列进行求和,结果赋给第一个非空的数据列对应行的总列。

代码

import 操作系统   import  openpyxl   得到openpyxl.styles  import 边界,,,,,,PatternFill字体,,GradientFill,对齐   def  range_sum(工作表,开始,结束):   sum 才能=0   for 才能;row 拷贝工作表(开始:结束):   ,,,for  cell 拷贝行:   ,,,,,if  cell.value  !=,没有:   ,,,,,,,sum  +=cell.value   return 才能;和   def  is_blank_row(工作表、row_num max_col=None):   if 才能;not  max_col:   ,,,max_col =, worksheet.max_column    for 才能;cell 拷贝表[row_num] [: max_col]:   ,,,if  cell.value:   ,,,,,return 错误的   return 才能正确   def  total_amount(工作表):   “““才能,对某表的,E列合并居中,并对E列求和,“““   ws 才能=工作表   行,才能,max_row =, 4, ws.max_row   while 才能row  & lt;, ws.max_row:   ,,,,,,sum_row_start sum_row_end =,行,行   ,,,for  working_row 拷贝范围(max_row  row  +, - 1, +, 2):   ,,,,,if  (not  is_blank_row(工作表,working_row-1), #,上一行有值   ,,,,,,,,以及(ws (f # 39; {working_row} & # 39;] .value 或是is_blank_row(工作表,working_row))):, #,一个列有值,或,当前为空行(最后一次合并)   ,,,,,,,,,#,求和   ,,,,,,,,,sum_row_end =working_row 作用;1   ,,,,,,,,,ws (f # 39; E {sum_row_start} & # 39;],=, range_sum (ws, f # 39; C {sum_row_start} & # 39;, f # 39; C {sum_row_end} & # 39;)   ,,,,,,,,,#,合并居中   ,,,,,,,,,ws (f # 39; E {sum_row_start} & # 39;] .alignment =,对齐(水平=癱enter",,垂直=癱enter")   ,,,,,,,,,ws (f # 39; {sum_row_start} & # 39;] .alignment =,对齐(水平=癱enter",,垂直=癱enter")   ,,,,,,,,,ws.merge_cells (f # 39; E {sum_row_start}: E {sum_row_end} & # 39;)   ,,,,,,,,,ws.merge_cells (f # 39;一个{sum_row_start}: {sum_row_end} & # 39;)   ,,,,,,,,,休息   ,,,row =, sum_row_end  + 1   def  main ():   #才能,根据情况修改代码   时间=in_file_name 才能;& # 39;In.xlsx& # 39;   时间=processing_sheet 才能;& # 39;Sheet1& # 39;   时间=path_name 才能;& # 39;D: \ \ \ \用户桌面\ \ temp # 39;   时间=out_file_name 才能;& # 39;Out.xlsx& # 39;   时间=wb 才能;openpyxl.load_workbook(文件名=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__==& # 39; __main__ # 39;:   之前,,main ()

说明

本功能用到了openpyxl模块,更多Excel操作请见官网

本代码不支持Excel中间有空行的情况,最后有空行无影响

f # 39; {sum_row_start} & # 39;这样的代码用到了f-string功能,若python版本低于3.6,需改为& # 39;一个# 39;+ str (sum_row_start)或其它形式

<强>补充:Python3熊猫DataFrame对某一列求和

在操作熊猫的DataFrame的时候,常常会遇到某些列是字符串,某一些列是数值的情况,如果直接使用df_obj.apply(总和)往往会出错

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

dataf_test1 [& # 39; diff # 39;] .sum (),//, diff为要求和的列

感谢你能够认真阅读完这篇文章,希望小编分享的“python如何实现Excel求和,合并居中的操作示例”这篇文章对大家有帮助,同时也希望大家多多支持,关注行业资讯频道,更多相关知识等着你来学习!

Python如何实现Excel求和,合并居中的操作示例