一、问题

xlwings的api可以实现Characters的功能,但加参数后会出错。

所以只能实现整个单元格加下划线,但无法进行部分内容加下划线。

我翻了很多文章,没有解决这个问题。

后来只能用间接的办法解决了,通过调用vba来解决。记录在此,自己以后可以看,也希望能供小伙伴们参考。

先说下xlwings的api,原理我不说了,一搜一大堆,直接上代码和链接。建议小伙伴看看,因为xlwings的api很厉害的,基本满足日常需要。

import xlwings as xw

app = xw.App(visible=True, add_book=False)

path_test = r'C:\Users\Administrator\Desktop\test.xls'

wb_test = app.books.open(path_test)

sh1 = wb_test.sheets[0]

rng = sh1.range('A1').api

# 下划线,赋值不能用xlUnderlineStyleSingle,可以用True或2

rng.Characters.Font.Underline = 2

# 如下操作会报错

rng.Characters(1, 3).Font.Underline = 2

# 或者如下操作也会报错,总之不能加参数

rng.Characters(Start:=1, Length:=3).Font.Underline = 2

关于xlwings、api、Characters参考文章(感谢各位前辈的文章):

  • CSDN博主「DataLab」的原创文章,原文链接:https://blog.csdn.net/DataLab/article/details/124635690

北方的白桦林,原文链接:

http://www.360doc.com/content/19/1214/21/41651190_879770010.shtml

二、解决思路

利用xlwings调用宏:先用xlwings调宏(这里没有“用”字),然后选中要操作的单元格,再用宏(这里才“用”)对部分内容添加下划线。

1、先制作宏

  1. 新建含宏的Excel表格

vba.xlsm

  1. 插入模块

  1. 改模块名

改模块名为m1(建议改一下名字,这样调用方便,更重要的是office版本有中英文差别,中文是“模块1”,英文是“module1”,不改名兼容性差)

  1. m1中加入代码,保存

Sub underline(start, length)

ActiveCell.Characters(start:=start, length:=length).Font.underline = xlUnderlineStyleSingle

End Sub

2、导入xlwings,打开vba.xlsm,调宏

import xlwings as xw

app = xw.App(visible=True, add_book=False)

path_vba = r'C:\Users\Administrator\Desktop\vba.xlsm'

wb_vba = app.books.open(path_vba)

underline = wb_vba.macro("m1.underline")

3、打开要操作的Excel,选中要操作的单元格

path_test = r'C:\Users\Administrator\Desktop\test.xls'

wb_test = app.books.open(path_test)

wb_test.sheets[0].range('A1').select()

4、用宏

underline(2, 3)

Python xlwings Excel单元格部分内容添加下划线相关推荐

  1. python读取excel表格-Python读取Excel单元格的内容

    python读取excel的单元格返回类型 Python通过xlrd对Excel进行读取操作时,返回的数据类型(ctype)有下面5中类型: 0 – empty:空 1 – string:字符串 2 ...

  2. Python读取Excel单元格的内容

    xlrd读取Excel文件 python读取excel的单元格返回类型 Python通过xlrd对Excel进行读取操作时,返回的数据类型(ctype)有下面5中类型: 0 – empty:空 1 – ...

  3. 如何在Microsoft Excel的单元格中的部分内容添加下划线

    当你处理大量文本时,很容易忽略全局,因此简单的格式化技术可以使数据更容易阅读和消化. 带下划线的文本格式是向用户强调或突出显示某些数据的好方法,使信息在Excel中脱颖而出.​ 你可以在整个单元格或单 ...

  4. python 拆分excel工作表_使用python拆分excel单元格方法

    在使用python语言时,利用openpyxl库操作excel,可以用来拆分excel单元格.那么,如何拆分单元格呢? 工具/原料 python pycharm openpyxl 截图工具 WPS 笔 ...

  5. 总结Python设置Excel单元格样式的一切,比官方文档还详细。

    Python对Excel表格处理非常方便,本文专门对Excel单元格样式设置进行总结,日常用到的设置基本都可以用openpyxl库完成. 创建一个表格 openpyxl是第三方库,如果你还没有安装,输 ...

  6. 总结Python设置Excel单元格样式的一切,比官方文档还详细

    总结Python设置Excel单元格样式的一切,比官方文档还详细 Python对Excel表格处理非常方便,本文专门对Excel单元格样式设置进行总结,日常用到的设置基本都可以用openpyxl库完成 ...

  7. python实现excel单元格合并_python进行excel单元格合并逆操作

    python进行excel单元格合并逆操作.利用anaconda3中的 pandas对包含合并单元格的表进行预处理,完成取消合并单元格的操作. 目标 通过处理表格A,得到表格B. 图1(通过处理表格A ...

  8. python 拆分excel单元格_Python Excel 单元格 拆分并填充内容,功能和的wps类似

    一.实现的功能: 二.效果 1.拆分并填充前 2.拆分并填充后 三.代码 import openpyxl from copy import deepcopy # 原文:https://www.cnbl ...

  9. python读取excel单元格填充色rgb_Python openpyxl读取单元格字体颜色过程解析

    Python openpyxl读取单元格字体颜色过程解析 问题 我试图打印some_cell.font.color.rgb并得到各种结果. 对于一些人,我得到了我想要的东西(比如" FF00 ...

最新文章

  1. android加载圈,SwipeRefreshLayout加载圈不会隐藏在android中
  2. Java黑皮书课后题第8章:*8.33(几何:多边形的子面积)一个具有四个顶点的凸多边形被分为4个三角形,编写一个程序,提示用户输入4个顶点的坐标,然后以升序显示四个三角形的面积
  3. 知乎超高赞:都有哪些习惯值得长期坚持?
  4. Android中获取应用程序(包)的信息-----PackageManager的使用(一)
  5. Linux rm 删除指定文件外的其他文件 方法汇总
  6. SSR -- 服务端渲染基础
  7. python文件和数据的格式化_Python文件和数据格式化(教程)
  8. Unity 安装个人免费版
  9. python3爬虫(2):使用Selenium爬取百度文库word文章
  10. LSB 算法matlab改进版,将二值图嵌入多张灰度图像中
  11. pentaho mysql_pentaho5.0.1将数据库移植成mysql
  12. 跨专业考计算机研究生有专业限制吗,我想跨专业考计算机专业研究生
  13. 线上靶机prompt.ml
  14. 项目经历怎么写_简历里的项目经历怎么写才能打动招生官和面试官?
  15. IDEA使用docker打包镜像
  16. 【Jmeter操作步骤】
  17. 性能测试工具的 Coordinated Omission 问题
  18. 仿百度html页面,HTML实战篇:html仿百度首页
  19. myeclispe 启动报错Location Type Faceted project metadata file /farming/.settings/org.eclips
  20. 百度网盘 http://pandownload.com/index.html

热门文章

  1. 这一年来在疫情下,作为沪漂的生活
  2. ssm框架的简单介绍
  3. C++的errorC2039
  4. 纵横字谜的答案 (UVa232)
  5. cuda安装正常,nvcc -V却没有任何显示
  6. 【手机下载Linux】
  7. ulong在C语言中的头文件,ULONG没有定义的 有关问题
  8. CAS单点登录(SSO)介绍及部署
  9. 【银河麒麟国产服务器安装mysql、nginx和docker遇到的问题】(回忆篇)
  10. 小程序中的axio——flyio的使用