C#-C#如何在word中插入公式

发布于 2017-08-14 16:30:37 字数 55 浏览 1452 评论 1

在利用C#创建word时,我需要向word中写入一些数学公式,不知道有没有相应的类函数可以调用?

如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。

评论(1

甜柠檬 2017-08-18 07:11:54

Eq是Equation(公式)的缩写,Eq域能够生成数学公式。创建公式当然最好用“公式编辑器”了,但在某些情况下使用Eq域来输入简单的数学公式也是一个不错的选择。根据Eq域的不同开关,分别能完成以下内容:绘制二维数组、用方括号括住单个元素、创建分数、使用一个或两个元素绘制根号、设置上下标、在元素四周绘制边框及将多个值组成一个列表等等。
域的表达式一般为:eq 开关选择项(文字),它允许同时套用多种开关创建更复杂的公式。
首先看看Word菜单插入/域:域类别=等式和公式;域名=Eq;(创建科学公式);域选项(开关)如下表:
开关 说明
A() 用任何编号的参数绘制二维矩阵
B() 用适合元素大小的括弧来括住单个的元素
D() 精确控制下一个字符的水平位置
F(,) 创建在分数线上下居中的分数
I(,,) 利用上限、下限和被积函数建立一个积分
L() 创建数值列表
O() 将每一个连续的元素重叠在其前一个元素上
R() 绘制根式
S() 将元素设置为上标或下标
X() 在括号内文字的周围创建一个方框
下面看几个比较实用的例子:
  “EQ i(-1,1,3x+7)”表示“3x+7”从-1到1的积分,开关i(,,)能使用指定的符号或默认符号及三个元素创建积分。
  “EQ r(2,3m-2)”表示3m-2的平方根,(开关r(,)能使用一个或两个元素绘制根号。
  “EQ f(7,8)”表示八分之七 ,(开关f(,)能创建分数)。
  “EQ a ac co2 vs3 hs3(Ax,By,C,D)”表示一个二维数组。
“EQ b bc{ (r(3,x+y))” ,表示用方括号括住单个元素。

有了Word域的基本知识后。如何用.NET实现,简单了,不过几行代码而已:

/// <summary>

/// 在Word中添加公式一、公式二

/// </summary>

/// <param name="sender"></param>

/// <param name="e"></param>

private void button1_Click(object sender, EventArgs e)

{

object oEndOfDoc = "\endofdoc";

WordObject wd = new WordObject();

wd.CreateNewDocument(System.Environment.GetFolderPath(Environment.SpecialFolder.DesktopDirectory) + @"ax.doc", true);

Word.Range range = wd.Document.Bookmarks.get_Item(ref oEndOfDoc).Range;

object fieldType = Word.WdFieldType.wdFieldEmpty;

object formula = @"EQ R(3,a*f(d,bs)+f(b+c+d,b-c-x)) ";//公式一

object preserveFormatting = false;

//字体设置

range.Text = formula.ToString();

range.Font.Size = 20;//字体大小

range.Font.Bold = 0;//粗体

range.Font.Subscript = 0;//是否为下标1为下标

range.Font.Color = Word.WdColor.wdColorYellow;//所选字体颜色

wd.Document.Fields.Add(range, ref fieldType, ref formula, ref preserveFormatting);//插入第一个公式

formula = @"EQ USdo(x)=R(,Usdo(z)s-Usdo(r)s(2))(%) ";//公式二

//字体设置

range.Text = formula.ToString();

range.Font.Size = 20;//字体大小

range.Font.Bold = 0;//粗体

range.Font.Subscript = 0;//是否为下标1为下标

range.Font.Color = Word.WdColor.wdColorRed;//所选字体颜色

Word.Field fd = wd.Document.Fields.Add(range, ref fieldType, ref formula, ref preserveFormatting);//插入第二个公式
}

~没有更多了~
我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
原文