生活随笔
收集整理的這篇文章主要介紹了
ClosedXML.Excel 关于转化sub与sup标签为上标下标的操作
小編覺得挺不錯的,現在分享給大家,幫大家做個參考.
.NET ClosedXML.Excel 關于轉化sub與sup標簽為上標下標的操作
上標和下標常見于一些數學公式和化學表達式中,有時候我們需要將這些數學公式和化學式插入到Excel中,因此就涉及到如何在Excel中插入上標和下標。本文將介紹如何使用C#和ClosedXML.Excel
組件在Excel文檔中插入上標和下標。
在使用以下代碼前,需要引用ClosedXML.Excel.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){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){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
總結
以上是生活随笔為你收集整理的ClosedXML.Excel 关于转化sub与sup标签为上标下标的操作的全部內容,希望文章能夠幫你解決所遇到的問題。
如果覺得生活随笔網站內容還不錯,歡迎將生活随笔推薦給好友。