pycharm 2022.2 xlwings-version 0.24.6 macOS m1 12.6
此前遇到的问题:
1. windows的代码在mac上行不通
import xlwings as xw
app = xw.App(visible = False, add_book = False)
wb = app.books.add()
sht = wb.sheets.active
sht['A1'].value = 'A1 bold'
sht['A1'].api.Font.Bold = True # 报错
2. 网上搜到的都是pywin32 、 appscript调用等问题
---> 结论:mac上xlwings不能设置excel单元格字体
一度怀疑是不是M1芯片的问题。。。。。。
解决方法:
看xlwings的main.py文档:(pycharm中,按住command点击xlwings)
command+F(class Range)搜索range类 然后再找其中的属性方法
看到Range类有一个私有属性font-----也就是有 range['A1'].font 的语法
print(dir(sht.range['A1'].font))
# 显示range.font的属性有[...,'api', 'bold', 'color', ..., 'italic', 'name', 'size']
# 也就是可以直接设置单元格字体了
sht.range['A1'].font.name = "仿宋"
sht.range['A1'].font.bold = True
# 试一下吧, 其他的方法和属性也可以这样学习
# 原来如此简单~~~
# 其他相关的单元格样式设置,比如border会复杂一些,要调用api,说来话长了