python-docx 设置Table 边框样式、单元格边框样式

from docx.oxml.ns import qn
from docx.oxml import OxmlElement
from docx.table import _Cell# 设置 table 的边框,用法与 cell 类似
def set_table_boarder(table, **kwargs):"""Set table`s borderUsage:set_table_border(cell,top={"sz": 12, "val": "single", "color": "#FF0000"},bottom={"sz": 12, "color": "#00FF00", "val": "single"},left={"sz": 24, "val": "dashed"},right={"sz": 12, "val": "dashed"},)"""borders = OxmlElement('w:tblBorders')for tag in ('bottom', 'top', 'left', 'right', 'insideV', 'insideH'):edge_data = kwargs.get(tag)if edge_data:any_border = OxmlElement(f'w:{tag}')for key in ["sz", "val", "color", "space", "shadow"]:if key in edge_data:any_border.set(qn(f'w:{key}'), str(edge_data[key]))borders.append(any_border)table._tbl.tblPr.append(borders)# 将table 的所有单元格四个边设置为 0.5 镑, 黑色, 实线
def set_table_singleBoard(table): return set_table_boarder(table,top={"sz": 4, "val": "single", "color": "#000000"},bottom={"sz": 4, "val": "single", "color": "#000000"},left={"sz": 4, "val": "single", "color": "#000000"},right={"sz": 4, "val": "single", "color": "#000000"},insideV={"sz": 4, "val": "single", "color": "#000000"},insideH={"sz": 4, "val": "single", "color":  "#000000"}
)

以下函数引用自[https://blog.csdn.net/weixin_44312186/article/details/104944110] 修改 start 为 left, end 为 right从而能够设置左右边框

def set_cell_border(cell: _Cell, **kwargs):"""Set cell`s borderUsage:set_cell_border(cell,top={"sz": 12, "val": "single", "color": "#FF0000", "space": "0"},bottom={"sz": 12, "color": "#00FF00", "val": "single"},left={"sz": 24, "val": "dashed", "shadow": "true"},right={"sz": 12, "val": "dashed"},)"""tc = cell._tctcPr = tc.get_or_add_tcPr()# check for tag existnace, if none found, then create onetcBorders = tcPr.first_child_found_in("w:tcBorders")if tcBorders is None:tcBorders = OxmlElement('w:tcBorders')tcPr.append(tcBorders)# list over all available tagsfor edge in ('left', 'top', 'right', 'bottom', 'insideH', 'insideV'):edge_data = kwargs.get(edge)if edge_data:tag = 'w:{}'.format(edge)# check for tag existnace, if none found, then create oneelement = tcBorders.find(qn(tag))if element is None:print(tag)element = OxmlElement(tag)tcBorders.append(element)# looks like order of attributes is importantfor key in ["sz", "val", "color", "space", "shadow"]:if key in edge_data:element.set(qn('w:{}'.format(key)), str(edge_data[key]))

以下lambda 函数简化 set_cell_boarder 的使用

# 将cell 的四个边设置为 0.5 镑, 黑色, 实线
def set_cell(cell): return set_cell_border(cell,top={"sz": 6, "val": "single", "color": "#000000", "space": "0"},bottom={"sz": 6, "val": "single", "color": "#000000", "space": "0"},left={"sz": 6, "val": "single", "color": "#000000"},right={"sz": 6, "val": "single", "color": "#000000"},insideV={"sz": 6, "val": "single"},insideH={"sz": 6, "val": "single"},
)

python-docx 设置Table 边框样式、单元格边框样式相关推荐

  1. java excel单元格背景色,『excel表格尺寸设置』Java如何设置被导出excel单元格的样式?比如背景色,大小什么的?...

    Java如何设置被导出excel单元格的样式?比如背景色,大小什么的? 使 poi ,具体实现 HSSFCellStyle style = null; // 创建表头style HSSFCellSty ...

  2. thinkphp设置excel表格的单元格边框颜色样式

    thinkphp设置excel表格单元格边框 //设置单元格边框 $styleThinBlackBorderOutline = array('borders' => array ('allbor ...

  3. EasyExcel设置行中单个单元格的样式

    1. 前言 在近期的工作中遇到一个导出Excel的需求: 用户通过Excel导入信息,校验用户导入的信息是否合法:如果导入的信息不合法,则保存失败:并且需要精确到行的字段设置标识,然后再将用户导入的信 ...

  4. html中隐藏单元格上边框,HTML table 标签边框问题(隐藏表格边框、单元格边框等)...

    一.表格的常用属性 基本属性有:width(宽度).height(高度).border(边框值).cellspacing(表格的内宽,即表格与tr之间的间隔). cellpadding(表格内元素的间 ...

  5. HTML table 标签边框问题(隐藏表格边框、单元格边框等)

    一.表格的常用属性 基本属性有:width(宽度).height(高度).border(边框值).cellspacing(表格的内宽,即表格与tr之间的间隔). cellpadding(表格内元素的间 ...

  6. html table 边框线隐藏,HTML table 标签边框问题(隐藏表格边框、单元格边框等)...

    一.表格的常用属性 基本属性有:width(宽度).height(高度).border(边框值).cellspacing(表格的内宽,即表格与tr之间的间隔). cellpadding(表格内元素的间 ...

  7. python字体加粗代码_如何在python docx中加粗行单元格的文本?

    在python docx中,可以通过使用 Rich Text 造型.您应该为模板中需要样式化的特定字符/字符串在字符/字符串的位置提供一个上下文变量.此变量映射到 RichText 具有样式定义(在代 ...

  8. 去除bootstrap的table样式中单元格边框线

    使用bootstrap的table样式,在非纯白背景下,会有单元格边框线,影响美观. 去除方式: <style type="text/css">         bod ...

  9. datagrid设置单元格边框_如何设置datagridview某一个单元格的边框样式

    如何设置datagridview某一个单元格的边框样式 关注:153  答案:2  mip版 解决时间 2021-01-27 02:18 提问者浅沫记忆 2021-01-26 14:32 如何设置da ...

最新文章

  1. php get memory,PHP memory_get_usage 和 memory_get_peak_usage获取内存的区别
  2. 记录android老项目studio升级3.1+后重新配置gradle踩过的坑
  3. 每天一个linux命令(2):cd命令
  4. Linux MTD系统剖析
  5. shell错位_Linux 中纠正拼写错误的Bash 命令方法
  6. 阿里妈妈技术团队 6 篇论文入选 CIKM 2021
  7. matlab约束转非约束,请问:fmincon非等和等于的约束条件
  8. 辨异 —— 中文词汇
  9. python判断点在直线的哪一侧_判断点在直线的一侧
  10. [Linux]-Shell编程与规范
  11. 老板说,我请你来,不是叫你无脑拷贝的,竟然在线上搞出这么大的一个BUG......
  12. 网课查题接口 搜题公众号对接题库教程 (附赠题库接口)
  13. 智慧园区系统设计方案
  14. 裁剪算法——中点分割算法/Liang-Barsky算法
  15. 小心,家中路由器发出的WiFi信号可能让你家变“透明”
  16. 自我监督学习:提高深度学习数据效率的计划
  17. 软件测试2小时入门-曹红杏-专题视频课程
  18. 漫谈递归——递归需要满足的两个条件
  19. 高级语言程序设计(实验四)
  20. 关于割接9000W数据的一些事

热门文章

  1. RISC-V指令集架构------RV32C压缩指令集
  2. 希尔伯特变换(Hilbert Transform)
  3. 笛卡尔坐标系中八个卦限对应的位置
  4. Linux 下使用Trickle限制下载/上传带宽
  5. 如何启用/开启本机的IIS服务
  6. 西北农林科技大学计算机考研好考吗,西北农林科技大学考研好考吗?
  7. 十年测试经验的阿里p10讲解python初阶:函数和模块 python全栈自动化测试系类4-2
  8. Linux切换中英文环境
  9. python荣联云通讯短信平台
  10. 《点石成金》(持续更新)