前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
工具
TVP
发布
社区首页 >专栏 >【云+社区年度征文】Python调整excel表格的格式

【云+社区年度征文】Python调整excel表格的格式

原创
作者头像
到不了的都叫做远方
修改2020-12-18 15:11:49
9370
修改2020-12-18 15:11:49
举报

背景:由于工作原因,需要根据excel表格里的不同数据,配置不同颜色或样式给领导,由于excel有多张表格,并且是每个月都要做的工作,故考虑用Python实现。

工具:Python的xlwings库

方法:

第一步:打开文件

代码语言:python
代码运行次数:0
复制
import  xlwings as xw  # 这是用来操作excel的工具

app = xw.App(visible=False,add_book=False)  # 创建一个对象(感觉像是若操作多个表可以创建多个app)
wb = app.books.open(r'F:\Python常用色值表.xlsx')  # 这样就打开了一个excel文件
sht1 = wb.sheets('Sheet1')  # 进入到文件的第一个Sheet

第二步:操作sheet页面

1.我们可以打开excel,看下它的基本情况(多少行,多少列,某个位置的值是什么,都有什么类型数据)

代码语言:python
代码运行次数:0
复制
sht1.range('a1').end('down').row  # a列一共有多少行,这里不分大小写,或a:a
# 注意:可用a+i,若ai是有数据的,显示数据有多少行,ai空白的话,就显示这张sheet含空白行一共多少行
# up,down,left,right都能填写,注意是要看row还是column,这个对后续写循环操作很有用处
sht1.range('a1').end('right').column  # 第1行有多少列

sht1.range('a1').value  # 查看特定单元格的内容,返回一个值
sht1.range('a1:c20').value  # 查看范围内的数据,返回一个列表
sht1.range('a:a').value # 查看整个sheet的a列的值,空白是None

2.赋值

代码语言:python
代码运行次数:0
复制
sht1.range('a1').value = ?  # 特定单元格赋值
sht1.range('i1:i50').value = ?   # 多个单元格赋值

3.修改样式

a.修改单元格填充色

代码语言:python
代码运行次数:0
复制
for i in range(1, sht1.range('b1').end('down').row+1):  # 此处的1是Python从0开始计数,excel从1开始
    v = 'd' + str(i)  # 可有可无,是我判断色值是数值的列,我想要填充色的那一列
    v1 = 'e' + str(i)  # 颜色要3个数字的元组,此三列组合即可,方法很多
    v2 = 'f' + str(i)
    v3 = 'g' + str(i)
    if isinstance(sht1.range(v1).value,str):  # 判断第一行是标题字符串,不赋值
        continue
    color = [sht1.range(v1).value,sht1.range(v2).value,sht1.range(v3).value]
   
    sht1.range(v).color = tuple(color)

b.修改文字样式

代码语言:python
代码运行次数:0
复制
sht1.range(a1: h1).api.Font.Color = 0x0000ff  # 修改文字颜色
sht1.range('a1').api.Font.Size = 12  # 设置文字大小,貌似不分大小写
sht1.range('a1').api.Font.bold = True  # 加粗,貌似不分大小写Bold和bold
sht1.range('a1').api.Font.name = '微软雅黑'  # 设置微软雅黑字体

sht1.range(a1: h1).api.Font.Color  # 查看文字颜色
sht1.range('a1').api.Font.Size  # 查看文字大小
sht1.range('a1').api.Font.bold  # 查看文字是否加粗
sht1.range('a1').api.Font.name  # 查看字体

第三步:保存文件

代码语言:python
代码运行次数:0
复制
wb.save()  # 保存表格
wb.close()  # 关闭表格
app.quit()  # 退出app

原创声明:本文系作者授权腾讯云开发者社区发表,未经许可,不得转载。

如有侵权,请联系 cloudcommunity@tencent.com 删除。

原创声明:本文系作者授权腾讯云开发者社区发表,未经许可,不得转载。

如有侵权,请联系 cloudcommunity@tencent.com 删除。

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档