1. 程式人生 > 其它 >ClosedXML.Excel 關於轉化sub與sup標籤為上標下標的操作

ClosedXML.Excel 關於轉化sub與sup標籤為上標下標的操作

技術標籤:ClosedXML.Excelexcelc#

.NET ClosedXML.Excel 關於轉化sub與sup標籤為上標下標的操作

  1. 上標和下標常見於一些數學公式和化學表示式中,有時候我們需要將這些數學公式和化學式插入到Excel中,因此就涉及到如何在Excel中插入上標和下標。本文將介紹如何使用C#和ClosedXML.Excel
    元件在Excel文件中插入上標和下標。

  2. 在使用以下程式碼前,需要引用Spire.Xls.dll到工程中,並新增名稱空間

using ClosedXML.Excel;
using System.IO;
using System;
 
        private
string SUB_START = "<sub>"; private string SUB_END = "</sub>"; private string SUP_START = "<sup>"; private string SUP_END = "</sup>"; public void ExeclRichText(string s,IXLCell cell) { if
(containSubSup(s)) { if ((s.IndexOf(SUB_START) < s.IndexOf(SUP_START) || s.IndexOf(SUP_START) < 0) && s.IndexOf(SUB_START) > -1) { //表示先有sub_start標籤 if (s.IndexOf(SUB_START) > 0) {
cell.RichText.AddText(s.Substring(0, s.IndexOf(SUB_START))); } int n1, n2; n1 = s.IndexOf(SUB_START) + SUB_START.Length; //開始位置 n2 = s.IndexOf(SUB_END); //結束位置 cell.RichText.AddText(s.Substring(n1, n2 - n1)).SetVerticalAlignment(XLFontVerticalTextAlignmentValues.Subscript); //取搜尋的條數,用結束的位置-開始的位置,並返回 s = s.Substring(n2 + SUB_END.Length); ExeclRichText(s, cell); } if ((s.IndexOf(SUB_START) > s.IndexOf(SUP_START) || s.IndexOf(SUB_START) < 0) && s.IndexOf(SUP_START) > -1) { //表示先有sub_start標籤 if (s.IndexOf(SUP_START) > 0) { cell.RichText.AddText(s.Substring(0, s.IndexOf(SUP_START))); } int n1, n2; n1 = s.IndexOf(SUP_START) + SUP_START.Length; //開始位置 n2 = s.IndexOf(SUP_END); //結束位置 cell.RichText.AddText(s.Substring(n1, n2 - n1)).SetVerticalAlignment(XLFontVerticalTextAlignmentValues.Subscript); //取搜尋的條數,用結束的位置-開始的位置,並返回 s = s.Substring(n2 + SUP_END.Length); ExeclRichText(s, cell); } } else { cell.RichText.AddText(s); } } public bool containSubSup(string s) { return (s.Contains(SUB_START) && s.Contains(SUB_END)) || (s.Contains(SUP_START) && s.Contains(SUP_END)); }

呼叫方法

 ExeclRichText("NH<sub>3</sub>.H<sub>2</sub>O", ws.Cell("A7"));


效果
在這裡插入圖片描述

https://github.com/ClosedXML/ClosedXML