使用XlsxWriter生成的Excel导入Google Sheets后字体变为Arial如何解决
问题原因
- Calibri属于微软公司的专有商业字体,Google Sheets网页端没有预装该字体的商用授权,无法直接识别调用,因此会自动降级回退到平台默认的无衬线字体Arial。
- 你代码中
set_font_family(0)的参数0代表未指定通用字体族,Google Sheets解析XLSX文件的字体属性时,未指定字体族的字体会优先匹配平台默认字体配置,进一步提高了降级到Arial的概率。 - XlsxWriter写入的字体元数据规则遵循微软Office的规范,Google Sheets对非官方支持字体的元数据识别优先级较低,也会导致自定义字体配置失效。
解决方法
- 优先替换为Google Sheets原生支持的无衬线字体,比如Roboto、Open Sans,这类字体和Calibri的视觉风格接近,只需将代码中的
GLOBAL_FONT_NAME值改为对应字体名即可,导入后可直接正常显示。 - 若必须使用Calibri,可将
set_font_family(0)修改为set_font_family(2),参数2对应Swiss无衬线通用字体族,Google Sheets找不到Calibri时会优先匹配同字体族的近似字体,若你已在Google Sheets的字体库中手动添加过Calibri,即可正确识别显示。 - 导入Google Sheets后批量修改:导入文件后使用快捷键
Ctrl+A全选所有单元格,直接在顶部工具栏的字体下拉菜单中选择目标字体即可批量覆盖原有字体配置。
内容的提问来源于stack exchange,提问作者Risalat Zaman
相关产品推荐
相关产品推荐

