当前位置: 首页 > wzjs >正文

用凡科帮别人做网站长沙 网站设计 公司价格

用凡科帮别人做网站,长沙 网站设计 公司价格,正规网站建设方案详细,在线图片编辑助手最近遇到了一个问题,下载一个文档时需要下载word可编辑的公式。找了很久终于找到了一种解决办法。下面是以C#代码来实现在Word中插入公式的功能。 目录 一、引入dll程序集文件1、通过 NuGet 引入dll(2种方法)的方法:2、手动添加d…

最近遇到了一个问题,下载一个文档时需要下载word可编辑的公式。找了很久终于找到了一种解决办法。下面是以C#代码来实现在Word中插入公式的功能。

目录

  • 一、引入dll程序集文件
    • 1、通过 NuGet 引入dll(2种方法)的方法:
    • 2、手动添加dll引用的方法
  • 二、插入公式
  • 三、如何查找并替换公式
    • latex公式提取器
    • 查找并进行公式替换

一、引入dll程序集文件

1、通过 NuGet 引入dll(2种方法)的方法:

  1. 可以在Visual Studio中打开“解决方案资源管理器”,鼠标右键点击“引用”,“管理NuGet包”,然后搜索“Free Spire.Doc”,点击“安装”。等待程序安装完成。
    在这里插入图片描述

  2. 将以下内容复制到PM控制台安装:

      Install-Package FreeSpire.Doc -Version 10.2
    

2、手动添加dll引用的方法

可通过手动下载包到本地,然后解压,找到BIN文件夹下的Spire.Doc.dll。然后在Visual Studio中打开“解决方案资源管理器”,鼠标右键点击“引用”,“添加引用”,将本地路径BIN文件夹下的dll文件添加引用至程序。

二、插入公式

在编辑公式时,通过 OfficeMath.FromLatexMathCode() 方法和 OfficeMath.FromMathMLCode()方法来添加LaTeX公式及MathML公式。开发者可根据程序设计需要选择其中对应的方法来编辑公式即可。

下面是本次程序代码实现公式添加的主要代码步骤:

  1. 创建 Document类的对象,并调用 Document.AddSection()方法添加节到Word文档。
  2. 通过 Section.AddParagraph()方法添加段落。
  3. 初始化 OfficeMath类的实例。通过 OfficeMath.FromLatexMathCode(string latexMathCode)方法编辑LeTeX公式;通过 OfficeMath.FromMathMLCode(string mathMLCode)方法编辑MathML公式。
  4. 通过 DocumentObjectCollection.Add(Spire.Doc.Interface.IDocumentObject entity)方法添加公式到段落。
  5. 最后,通过 Document.SaveToFile(string fileName, FileFormat fileFormat)方法保存文档。
using Spire.Doc;
using Spire.Doc.Documents;
using Spire.Doc.Fields.OMath;namespace InsertFormula
{class Program{static void Main(string[] args){//新建word实例Document doc = new Document();//添加一个sectionSection section = doc.AddSection();//添加一个段落 Paragraph paragraph = section.AddParagraph();//在第一段添加Latex公式OfficeMath officeMath = new OfficeMath(doc);officeMath.FromLatexMathCode("x^{2}+\\sqrt{x^{2}+1}=2");paragraph.Items.Add(officeMath);//添加MathML公式到第四段Paragraph paragraph1 = section.AddParagraph();OfficeMath officeMath1 = new OfficeMath(doc);            officeMath1.FromMathMLCode("<mml:math xmlns:mml=\"http://www.w3.org/1998/Math/MathML\" xmlns:m=\"http://schemas.openxmlformats.org/officeDocument/2006/math\"><mml:msup><mml:mrow><mml:mi>x</mml:mi></mml:mrow><mml:mrow><mml:mn>2</mml:mn></mml:mrow></mml:msup><mml:mo>+</mml:mo><mml:msqrt><mml:msup><mml:mrow><mml:mi>x</mml:mi></mml:mrow><mml:mrow><mml:mn>2</mml:mn></mml:mrow></mml:msup><mml:mo>+</mml:mo><mml:mn>1</mml:mn></mml:msqrt><mml:mo>+</mml:mo><mml:mn>1</mml:mn></mml:math>");paragraph1.Items.Add(officeMath1);//这里可以进行自己的操作添加数据。。。//保存文档       doc.SaveToFile("InsertFormulas.docx", FileFormat.Docx);}}
}

结果:
在这里插入图片描述

三、如何查找并替换公式

有时候我们并不是直接插入公式,公式存在于文本值中,这个时候我们就需要在文本中替换公式部分。
结果如下:
在这里插入图片描述

latex公式提取器

using System;
using System.Collections.Generic;
using System.Text.RegularExpressions;
namespace TEST;/// <summary>
/// Latex公式提取器
/// </summary>
public class LatexFormulaExtractor
{// 正则表达式模式组合:匹配所有可能的 LaTeX 公式形式private static readonly Regex LaTeXPattern = new Regex(// 匹配 LaTeX 环境(如 \begin{equation}...\end{equation})@"\\begin\{([a-zA-Z]+\*?)\}.*?\\end\{\1\}" + "|" +// 匹配 $$...$$ 或 \[...\]@"\${2}(.*?)\${2}|\\\[(.*?)\\\]" + "|" +// 匹配 $...$(需排除转义的 \$)@"(?<!\\)\$((?:[^$\\]|\\.)*?)(?<!\\)\$",RegexOptions.Singleline | RegexOptions.IgnoreCase);/// <summary>/// 从文本中提取所有 LaTeX 公式/// </summary>public static List<string> ExtractLatexFormulas(string input){var formulas = new List<string>();if (string.IsNullOrWhiteSpace(input)) return formulas;// 遍历所有匹配项foreach (Match match in LaTeXPattern.Matches(input)){if (match.Success){// 提取匹配的公式内容(处理不同捕获组)string formula = match.Groups[0].Value;formulas.Add(formula);}}return formulas;}
}

查找并进行公式替换

 var formulas = LatexFormulaExtractor.ExtractLatexFormulas(htmlContent);foreach (var formula in formulas){// 添加Office Math公式OfficeMath math = new OfficeMath(doc);// 确保OfficeMath对象正确初始化if (math != null){math.FromLatexMathCode(formula); // 使用LaTeX语法插入公式}//查找文档中的指定文本内容TextSelection[] selections = doc.FindAllString(@formula, true, true);int tindex = 0;TextRange range = null;//遍历文档,移除文本内容,插入公式if (selections != null){foreach (TextSelection selection in selections){range = selection.GetAsOneRange();tindex = range.OwnerParagraph.ChildObjects.IndexOf(range);range.OwnerParagraph.ChildObjects.Insert(tindex, math);range.OwnerParagraph.ChildObjects.Remove(range);}}}

文章转载自:

http://gZFNJQNJ.mgkcz.cn
http://nxl0tSBX.mgkcz.cn
http://183lLVAj.mgkcz.cn
http://ikSLkcOV.mgkcz.cn
http://s1RRUKge.mgkcz.cn
http://QQ0ygE6K.mgkcz.cn
http://tNhbl7q6.mgkcz.cn
http://wMRXzjoH.mgkcz.cn
http://hQbsfdJk.mgkcz.cn
http://vXsbb4Q4.mgkcz.cn
http://S29qr9OW.mgkcz.cn
http://yQJaYQAx.mgkcz.cn
http://ozpiHBSz.mgkcz.cn
http://8Xu7TyEd.mgkcz.cn
http://clmoHXBa.mgkcz.cn
http://hbgyWySU.mgkcz.cn
http://6WOPVxdv.mgkcz.cn
http://3aaYCdOx.mgkcz.cn
http://fCQ1OnyM.mgkcz.cn
http://2Q7wkxaw.mgkcz.cn
http://DNXPohR7.mgkcz.cn
http://919zyLFq.mgkcz.cn
http://SQ0j7fhU.mgkcz.cn
http://SpsElHT1.mgkcz.cn
http://b4q9E07e.mgkcz.cn
http://JTzRCXkK.mgkcz.cn
http://8ZQxviLc.mgkcz.cn
http://sMzoUtwD.mgkcz.cn
http://RA0jHLBk.mgkcz.cn
http://ErhSuteO.mgkcz.cn
http://www.dtcms.com/wzjs/778313.html

相关文章:

  • 钓鱼网站制作教程互联网舆情中心是干嘛的
  • 电商兼职网站开发广州集美组设计公司官网
  • 做播放器电影网站需要多少钱网站建设是什么职位
  • 陕西省建设教育培训中心网站网站建设结算方式
  • 网站建设与维护一般需要多少钱每年文化事业建设费在哪个网站申报
  • 刚做网站做多用户还是单用户mysql 收费 网站建设
  • 网站开发nodejsseo排行榜年度10佳网站
  • 网站开发提案模板那些网站是vue做的
  • 旅游网站制作 价格广州电子商城网站
  • 哪家公司做企业网站外贸wordpress主题
  • 河北廊坊网站建设阳江做网站多少钱
  • 宁波网站开发公司电话网站收录地址
  • 北京平面设计网站莱芜雪野湖国际会议中心
  • 可以免费下源码的网站天津做网站建设公司
  • 网站托管找心馨人生珠海网站建设
  • 江西seo网站排名优化上海市建设工程检测培训中心
  • 白云区同和网站建设优秀网站网页设计
  • 网站建设市场前景wordpress改为QQ头像
  • 网站解析加速网站过期查询
  • 网站建设女装规划书宁波网站推广怎么做
  • 网站建设ASP心得体会win7一键优化工具
  • 网站后台信息发布这样做网站的提交重置按钮怎么做
  • p2p倒闭 网站开发手游平台
  • 智慧政务门户网站建设设计工作室经营范围
  • 无锡网站建设推广服务一个网站建设的组成
  • 吉大建设工程学院官方网站移动互联网开发的几种方式
  • 如何做网站怎么赚钱吗域名备案流程是什么
  • 附近的网站设计开发网站开发 工具
  • 酒泉市城乡建设局网站宁波建设网 提取业务
  • 凤翔做网站珠海特价做网站