NPOI处理Word文本中上下角标
程序员文章站
2023-03-28 09:18:16
读取Word文档,并将文本转成html标签,后面发现,经常有带上下角标的内容,于是一并处理了。 核心在于对XWPFRun对象中Subscript属性的处理。 Word文档: 输出:
测试上下ok。
CO2
读取word文档,并将文本转成html标签,后面发现,经常有带上下角标的内容,于是一并处理了。
核心在于对xwpfrun对象中subscript属性的处理。
1 /// <summary> 2 /// 读取word,并识别文本中的上下角标 3 /// </summary> 4 /// <param name="filename"></param> 5 /// <returns></returns> 6 public static string readwordtextexwithsubscript(string filename) 7 { 8 9 string filetext = string.empty; 10 stringbuilder sbfiletext = new stringbuilder(); 11 12 #region 打开文档 13 xwpfdocument document = null; 14 try 15 { 16 using (filestream file = new filestream(filename, filemode.open, fileaccess.read)) 17 { 18 document = new xwpfdocument(file); 19 } 20 } 21 catch (exception e) 22 { 23 throw e; 24 } 25 #endregion 26 //正文段落 27 foreach (xwpfparagraph paragraph in document.paragraphs) 28 { 29 //获取段楼中的句列表 30 ilist<xwpfrun> runslists = paragraph.runs; 31 32 sbfiletext.append("<p>"); 33 foreach (xwpfrun run in runslists) 34 { 35 switch (run.subscript) 36 { 37 case verticalalign.baseline: 38 sbfiletext.append(run.text); 39 break; 40 //上角标 41 case verticalalign.superscript: 42 sbfiletext.append("<sup>" + run.text + "</sup>"); 43 break; 44 //下角标 45 case verticalalign.subscript: 46 sbfiletext.append("<sub>" + run.text + "</sub>"); 47 break; 48 default: 49 sbfiletext.append(run.text); 50 break; 51 } 52 53 } 54 sbfiletext.appendline("</p>"); 55 } 56 filetext = sbfiletext.tostring(); 57 58 return filetext; 59 }
word文档:
输出:
<p>测试<sup>上</sup><sub>下</sub>ok。</p>
<p>co<sub>2</sub></p>
<p>面积约6000km<sup>2</sup></p>
html预览:
上一篇: Windows环境下实现Consul服务注册和服务发现
下一篇: 自如回应阿里员工租房后得白血病去世