from openpyxl import load_workbook
from openpyxl.styles import PatternFill, Border, Side, Alignment, Protection, Font
wb = load_workbook("C:/TEMP/test2.xlsx")
# ws = wb.active 选择工作簿
ws = wb[wb.sheetnames[0]]
# C/D/E列合并相同单元格
x1=None
x2=None
for i in range(1,ws.max_row+1):
if x1 is None:
tv=ws.cell(row=i, column=3).value
if tv != ws.cell(row=i+1, column=3).value:
# print(x1,x2)
if x1 is not None and x2 is not None:
ws['C{}'.format(x1)].alignment = Alignment(horizontal='center', vertical='center')
ws.merge_cells('C{}:C{}'.format(x1,x2)) #合并单元格
ws['D{}'.format(x1)].alignment = Alignment(horizontal='center', vertical='center')
ws.merge_cells('D{}:D{}'.format(x1,x2)) #合并单元格
ws['E{}'.format(x1)].alignment = Alignment(horizontal='center', vertical='center')
ws.merge_cells('E{}:E{}'.format(x1,x2)) #合并单元格
x1=None
x2=None
from openpyxl import load_workbookfrom openpyxl.styles import PatternFill, Border, Side, Alignment, Protection, Fontwb = load_workbook("C:/TEMP/test2.xlsx")# ws = wb.active 选择工作簿ws = wb[wb.sheetnames[0]]# C/D/E列合并相同单元格x1=Nonex2=Nonefor i in ran.
这里要说明一下,本文包含的代码并不是自己写的,是我找了很多文章拼凑出来的,比如如何找
相同
内容的
单元格
、怎么
合并
、怎么居中等等。出处许多,这边就不一个个放链接了。就当做一份自己写的学习笔记供大家参考。
本文结构 是分段讲解代码,文末放全部的代码
处理前的
单元格
----------------------->
可以看到有一些名字是重复的,我们现在要做的就是把这些重复的名字
合并
居中,程序执行完的效果如图。
(大家可能会说,这不是多此一举吗,直接点
excel
中的
合并
并居中不就好了? 但.
EXCEL
的数值
排序
功能还是挺强大的,升序、降序,尤其自定义
排序
,能够对多个字段进行
排序
工作。
那么,在
Python
大法中,有没有这样强大的
排序
功能呢?答案是有的,而且本人觉得
Python
的
排序
功能,一点不比
EXCEL
的差。
同样,我们依然用到的是强大的pandas这个三方库。我们先将numpy和pandas导入进来:
接着构造一个今天要用到的DataFrame,我们用字典的形式来构造。
都是随意构造的,内容别较真。我们先来个简单点的热热身,按照身高的降序来排列一下。
我们用到的是df.sort_values()这个函数。第一个参数为by,传入你要
排序
的列的标签名即可,后面的ascend
import pandas as pd
excel
File = r'C:/Users/
excel
文件名'
df = pd.DataFrame(pd.read_
excel
(
excel
File,'数据需求'))
#print(df)
#查看列名称,并输出列表
df_columns=df.columns.valu...
因为工作经常遭遇繁重的重复工作,不想将时间花在没有价值的加班上,开始接触
Python
,很遗憾只能通过网络,书籍等途径自己学习,虽然
Python
很多人都说很简单,但是对于我这种程序小白来说依然没那么轻松,好的是已经可以让程序来对我的工作改进很多,有时候真的不得不让人惊叹计算机程序的力量是人力远远不及的,来分享一个人力与程序天然差异的小例子。
真实场景:
某天接到领导任务,因为需要上传资料进某个固定的系统,可是系统需要特定的格式,前面7列需要根据第1列的内容
合并单元格
,意思是说第...