xlwings 无法更改第 6 行下方的字体
xlwings cannot change font below row 6
下面是我为更改 xlsx 文件输出中的字体而编写的代码:
wb = xw.Book('aapl.xlsx')
sht = wb.sheets('Sheet1')
last_cell = sht.range("A1").end(Direction.xlDown).end(Direction.xlToRight)
print('Last cell at: (' + str(last_cell.column) + ', ' + str(last_cell.row) + ')' + '\n')
for i in range(1, last_cell.column):
for j in range(1, last_cell.row):
sht.cells(i, j).api.Font.Name = 'JetBrains Mono'
for ws in wb.sheets:
ws.autofit(axis='columns')
wb.save()
这里的问题是:我想在我的文件中将字体类型设置为JetBrains Mono
,但我不知道为什么它只能更改为第六行。我尝试打印出 last_cell
的位置以查看是否有任何错误,并且还在第二个 for 循环中换出 last_row.column
以查看是否 range(1, 107)
(107 是行数在我的文件中)有效。但是,不幸的是,最终还是这样。 how the file I ended up getting looks like
您可以在代码中简化一些事情:
- 您可以将一种字体应用于一系列单元格,而不需要遍历每个单元格
- 同时,xlwings 支持
font.name
,无需使用 api
解决方法
expand
或 current_region
应该会让您的生活更轻松
这段代码应该就是您所需要的:
wb = xw.Book('aapl.xlsx')
sht = wb.sheets('Sheet1')
sht['A1'].expand().font.name = 'JetBrains Mono'
下面是我为更改 xlsx 文件输出中的字体而编写的代码:
wb = xw.Book('aapl.xlsx')
sht = wb.sheets('Sheet1')
last_cell = sht.range("A1").end(Direction.xlDown).end(Direction.xlToRight)
print('Last cell at: (' + str(last_cell.column) + ', ' + str(last_cell.row) + ')' + '\n')
for i in range(1, last_cell.column):
for j in range(1, last_cell.row):
sht.cells(i, j).api.Font.Name = 'JetBrains Mono'
for ws in wb.sheets:
ws.autofit(axis='columns')
wb.save()
这里的问题是:我想在我的文件中将字体类型设置为JetBrains Mono
,但我不知道为什么它只能更改为第六行。我尝试打印出 last_cell
的位置以查看是否有任何错误,并且还在第二个 for 循环中换出 last_row.column
以查看是否 range(1, 107)
(107 是行数在我的文件中)有效。但是,不幸的是,最终还是这样。 how the file I ended up getting looks like
您可以在代码中简化一些事情:
- 您可以将一种字体应用于一系列单元格,而不需要遍历每个单元格
- 同时,xlwings 支持
font.name
,无需使用api
解决方法 expand
或current_region
应该会让您的生活更轻松
这段代码应该就是您所需要的:
wb = xw.Book('aapl.xlsx')
sht = wb.sheets('Sheet1')
sht['A1'].expand().font.name = 'JetBrains Mono'