Dream4ever / Knowledge-Base

record every requirement and solution here
https://www.hewei.in/
36 stars 6 forks source link

ExcelJS 在前端浏览器中读取 Excel 中的带格式文本 #165

Closed Dream4ever closed 3 years ago

Dream4ever commented 3 years ago

问题描述

对于 Excel 单元格中的加粗、带下划线这样的带格式文本,ExcelJS 也是能够正常读取的。

用 ExcelJS 录入时,这样的单元格不是普通的字符串,而是带有 richText 属性的对象,文本内容则由数组组成,数组中每个元素的 text 字段都是单元格中文本的一部分,用下面的代码,就可以得到完整的题干文本:

let stem = quiz[1].richText.map(ele => ele.text).join('')

题目选项也是类似的,由于选项中会有带下划线的文本段,这样的文本段可以通过 options[i].richText[j].font?.underline 这样的代码进行检查。 在格式化题目时,统一对这样的文本段用 HTML 的 u 标签进行包裹并存入数据库。 在前端展示选项时,可以直接用 Vue 的现成语法 <span v-html="***"></span> ,比较方便。