有些小伙伴做表格追求版面美观,有的是喜欢表格层次分明,那就一定不能错过今天的巧用openpyxl设置边框为粗匣框线教学,集美观与层次分明一体的实用教学。

举个简单的例子,就是这样:

思路:openpyxl有一个border方法可以给单元格设置边框,同时需要设置上下左右四个方向。我们先得到这片区域的最外层的单元格们,分四个方向,我们给最左边一排的单元格设置左边框为粗线,其他三边为细线,其他三个方向的单元格方法一样。

代码示例:import openpyxl

from openpyxl.styles import Side, Border, colors

#定义边框样式

def my_border(t_border, b_border, l_border, r_border):

border = Border(top=Side(border_style=t_border, color=colors.BLACK),

bottom=Side(border_style=b_border, color=colors.BLACK),

left=Side(border_style=l_border, color=colors.BLACK),

right=Side(border_style=r_border, color=colors.BLACK))

return border

#初始化制定区域边框为所有框线

def format_border(s_column, s_index, e_column , e_index):

for row in tuple(sheet[s_column + str(s_index):e_column + str(e_index)]):

for cell in row:

cell.border = my_border('thin', 'thin', 'thin', 'thin')

#给指定区域设置粗匣框线

def set_solid_border(area_list):

for area in area_list:

s_column = area[0]

s_index = area[1]

e_column = area[2]

e_index = area[3]

#设置左粗框线

for cell in sheet[s_column][s_index - 1:e_index]:

cell.border = my_border(cell.border.top.style, cell.border.bottom.style,

'medium', cell.border.right.style)

# 设置右粗框线

for cell in sheet[e_column][s_index - 1:e_index]:

cell.border = my_border(cell.border.top.style, cell.border.bottom.style,

cell.border.left.style, 'medium')

# 设置上粗框线

for row in tuple(sheet[s_column + str(s_index):e_column + str(s_index)]):

for cell in row:

cell.border = my_border('medium', cell.border.bottom.style,

cell.border.left.style, cell.border.right.style)

# 设置下粗框线

for row in tuple(sheet[s_column + str(e_index):e_column + str(e_index)]):

for cell in row:

cell.border = my_border(cell.border.top.style, 'medium',

cell.border.left.style, cell.border.right.style)

if __name__ == '__main__':

wb = openpyxl.load_workbook('test.xlsx')

sheet = wb['Sheet1']

format_border('A', 3, 'D', 10)

set_solid_border([['A', 3, 'D', 5], ['A', 6, 'D', 7], ['A', 8, 'D', 10],

['A', 3, 'A', 10], ['B', 3, 'C', 10], ['D', 3, 'D', 10]])

wb.save('test.xlsx')

运行结果如下:

设置完粗框线的表格是不是层次分明,更加美观了呢?更多Python实用知识,点击进入PyThon学习网教学中心。

python选定区域设置边框_Python教程:巧用openpyxl为指定区域设置边框为粗匣框线...相关推荐

  1. python requests请求失败重试_Python Requests.post()请求失败时的retry设置

    1. 问题描述 通常,我们在做爬虫工作或远程接口调用的过程中,往往由于访问频率过快等原因遇到连接超时的报错问题,利用最近调用api.ai.qq.com某个接口举例如下: Traceback (most ...

  2. python怎样设置全局变量_Python教程之全局变量用法

    本文实例讲述了Python全局变量用法.分享给大家供大家参考,具体如下: 全局变量不符合参数传递的精神,所以,平时我很少使用,除非定义常量.今天有同事问一个关于全局变量的问题,才发现其中原来还有门道. ...

  3. python turtle绕原点旋转_Python教程小小turtle绘图教学 (二)

    对于一开始学习Python的同学来说,强烈给大家安利Python中的turtle库!原因有三:直观 有趣 易上手通过Python的turtle库,你可以很容易的使用循环,判断以及自定义函数等基础的编程 ...

  4. 猿编程python分为几个阶段_python教程- 猿说python

    文章首发微信公众号,微信搜索:猿说python 个人博客地址:Python教程 - 猿说Python​www.shuopython.com 一.简介 知识改变命运,程序改变世界.互联网时代潜移默化的改 ...

  5. python模拟键盘输入视频_python教程-模拟鼠标和键盘输入

    大家可能知道,有的情形下,如果我们需进行自动化操作的应用程序不提供相对应的的接口,就难以通过Python直接调用API来做到自动化.在此类情形下,Python也并非压根没有办法,我们可以通过模拟键盘和 ...

  6. python 全中文匹配字符_Python教程:进程和线程amp;正则表达式

    字符串是编程时涉及到的最多的一种数据结构,对字符串进行操作的需求几乎无处不在.比如判断一个字符串是否是合法的Email地址,虽然可以编程提取@前后的子串,再分别判断是否是单词和域名,但这样做不但麻烦, ...

  7. python随机种子的作用_python – 如何使用TensorFlow获得稳定的结果,设置随机种子...

    我试图用不同的参数多次运行神经网络,以校准网络参数(退学概率学习率e.d.).然而,我遇到的问题是,在保持参数相同的情况下运行网络仍然给我一个不同的解决方案,当我运行网络在一个循环如下: filena ...

  8. 用python海龟制图画花瓣_Python教程:使用Turtles画出带有花瓣的花

    简单画出一朵带有花瓣的花 # -*- coding:utf-8 -*- import turtle # create window and turtle window = turtle.Screen( ...

  9. python使用Yolov3实现电子围栏功能,检测目标是否进入指定区域

    这是一道小学升初中的测试题.题目给定了一个视频,要求我们检测出里面的人,并且判断是否有人在翻越围墙,是则给出警报信息,同时要求我们要播放视频. 这道题的思路很简单,可以这样来做.首先给定出报警区域,检 ...

最新文章

  1. Centos6.5 配置  DRBD8.4.3
  2. 赚钱是刚需,如何正确的交易股票?
  3. 价值4500元的微生物组培训资料
  4. Oracle - Log buffer 的相关设置
  5. 开发备必:WEB前端开发规范文档
  6. STM32F2系列系统时钟默认配置
  7. 利用C/C++实现较完整贪吃蛇游戏
  8. makefile之引用(3)
  9. 【数据库系统原理】SQL语言
  10. 从副高到评正高的条件_大学老师从副高到正高职称有多难?
  11. 2021年安全员-B证新版试题及安全员-B证试题及解析
  12. python 随机生成6位数字+字母的密码
  13. Deploying guidelines and a simplified data model ...文献笔记
  14. MTU、MSS、TCP首部、IP首部
  15. keil5编译器出现Undefined symbol time (referred from xxx.o).
  16. logistic regression(二项 logistic 与 多项logistic )
  17. epoll精粹二 - Linux C++网络编程(二十三)
  18. 微信jssdk已无力吐槽
  19. 如何生成jks证书文件
  20. RISC-V要上天!NASA选它做下一代航天计算芯片

热门文章

  1. 使用proguard混淆java web项目代码
  2. jeecg社区第11期导师架构学习班开始报名了
  3. 使用CallableStatement处理Oracle数据库的存储过程
  4. Oracle中较长number型数值的科学计数显示问题
  5. 数据源管理 | 动态权限校验,表结构和数据迁移流程
  6. Redis-列表(List)基础
  7. linux中文件的合并、归档、和压缩
  8. D语言/dlang 2.085.0 发布,GC、Objective-C 混编增强
  9. thinkphp图片加载_标题栏ico展示
  10. Android网络编程Socket【实例解析】