Sheetjs(xlsx)无法读取Excel文件中全部字体样式问题求助
解决方案
社区版样式支持限制
SheetJS的免费社区版(xlsx包)仅支持读取部分基础单元格样式,背景填充属于支持范围内,但字体样式(大小、颜色、字体家族、加粗等)不在社区版的解析能力中,这就是你无法获取字体样式的核心原因。获取完整样式的途径
- 升级到SheetJS Pro版本:Pro版本提供了完整的样式解析能力,支持读取所有Excel单元格样式,包括字体、边框、对齐方式等。
- 间接提取样式(社区版替代方案):添加
cellHTML: true参数,让SheetJS生成包含内嵌样式的HTML片段,你可以从cell.h属性中提取字体相关样式。
修改读取配置示例:
const workBook = XLSX.read(fileData, { type: 'binary', cellStyles: true, cellHTML: true // 启用HTML生成 });
之后可以从单元格对象的h属性中拿到类似<span style="font-size:14pt;font-family:微软雅黑;color:#333333;font-weight:bold;">单元格内容</span>的HTML,再通过字符串解析或DOM操作提取字体样式。
- 额外检查点
确认Excel中的字体样式是直接应用在单元格上,而非通过「单元格样式集」或条件格式——社区版对这类间接应用的样式支持更差,基本无法读取。
内容的提问来源于stack exchange,提问作者ahmedskulj10
相关产品推荐
相关产品推荐

