Word文档 .net(c#)编辑公式 (使用域 Fields)

 

 

公式编辑器很容易编辑上面的公式,但是使用.net程序如何实现公式编辑?毕竟工程计算上需要使用很多复杂公式,用.net生成说明书使用规范的公式是必然的。

   EqEquation(公式)的缩写,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))” ,表示用方括号括住单个元素。

再看看复杂公式:

 

 

OK. Let’s Use .Net Programming:

有了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,b\s(2))+\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 U\S\do(x)=\R(,U\s\do(z)\s(2)-U\s\do(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);//插入第二个公式

 

        }

 

操作Word的帮助类

 

WordObject

这是带有字体设置效果的:

问题解决了。呵呵。以前还看到有专门卖这种第三方控件的。今天让他歇业。

posted on 2009-11-10 18:07  jdmei520  阅读(5614)  评论(3)    收藏  举报

导航