有关c#的机械自动设计平台(word操作篇)

microsoft是一个非常强大的公司,它的气场波及了所有旗下的产品。抱着佛脚一直就是编程之中的乐事,所以在做设计软件的时候,选用一个好的库,一个好的平台,是很重要的。因此,我很推荐使用c#进行设计编程。
于是,c#开发,理所应当的选择microsoft visual studio 2010这个平台。
c#可以容易的与word和excel进行通信。
需要我们安装word和excel的时候安装“.net可编程支持”。
然后在引用库的时候,就可以添加
Microsoft.Office.Interop.Word,Microsoft.office.Interop.Excel两个名空间了。
word初始化并且创造一个文档:

1、新建Word文档

CreateWordFile
新建Word文档#region 新建Word文档
/** <summary>
/// 动态生成Word文档并填充内容
/// </summary>
/// <param name="dir">文档目录</param>
/// <param name="fileName">文档名</param>
/// <returns>返回自定义信息</returns>
public static bool CreateWordFile(string dir, string fileName)
{
    try
    {
        Object oMissing = System.Reflection.Missing.Value;

        if (!Directory.Exists(dir))
        {
            //创建文件所在目录
            Directory.CreateDirectory(dir);
        }
        //创建Word文档(Microsoft.Office.Interop.Word)
        Microsoft.Office.Interop.Word._Application WordApp = new Application();
        WordApp.Visible = true;
        Microsoft.Office.Interop.Word._Document WordDoc = WordApp.Documents.Add(
            ref oMissing, ref oMissing, ref oMissing, ref oMissing);

      //此处插入你想写的文字,公式,标格,图片,对象等等。

        //保存
        object filename = dir + fileName;
        WordDoc.SaveAs(ref filename, ref oMissing, ref oMissing, ref oMissing, ref oMissing,
            ref oMissing, ref oMissing, ref oMissing, ref oMissing, ref oMissing, ref oMissing,
            ref oMissing, ref oMissing, ref oMissing, ref oMissing, ref oMissing);
        WordDoc.Close(ref oMissing, ref oMissing, ref oMissing);
        WordApp.Quit(ref oMissing, ref oMissing, ref oMissing);
        return true;
    }
    catch (Exception e)
    {
        Console.WriteLine(e.Message);
        Console.WriteLine(e.StackTrace);
        return false;
    }
}
#endregion 新建Word文档

 
2.打入一个段落
        public static void in_text(string text,float Size,bool Bold)//text为打入的文字,size为文字大小,bold为文字是否加粗
        {
            para.Range.Text = text ;
            para.Range.Font.Size = Size;
            if (Bold)
                para.Range.Font.Bold = 2;
            //para.Range.Font.Italic = 2;//Italic为文字是否是斜体
            para.Range.InsertParagraphAfter();
        }
3.打入一个公式
        public static void in_fml(string fml)
        {
            object oEndOfDoc = " \\endofdoc";
            Microsoft.Office.Interop.Word.Range range = WordDoc.Bookmarks.get_Item(ref oEndOfDoc).Range;
            object fieldType = Microsoft.Office.Interop.Word.WdFieldType.wdFieldEmpty;
            object formula = fml;//公式一
            object preserveFormatting = false;
            //字体设置
            range.Text = formula.ToString();
            range.Font.Size = 10.5F;
            WordDoc.Fields.Add(range, ref fieldType, ref formula, ref preserveFormatting);//插入第一个公式
            para.Range.InsertParagraphAfter();
        }
公式的格式:

首先看看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))” ,表示用方括号括住单个元素。

4.打入一个表格

        public static void in_xls(string fileName)
        {
            object type = string.Format(@"Excel.Sheet.08");//插入的excel 格式,这里我用的是excel 2010,所以是.12
            object filename = fileName;//插入的excel的位置
            //移动光标文档末尾
            object count = WordDoc.Paragraphs.Count;
            object WdLine = Microsoft.Office.Interop.Word.WdUnits.wdParagraph;
            WordApp.Selection.MoveDown(ref WdLine, ref count, ref oMissing);//移动焦点
            WordApp.Selection.TypeParagraph();//插入段落
            object LinkToFile = false;
            object SaveWithDocument = true;
            object Anchor = WordDoc.Application.Selection.Range;
            WordApp.Selection.InlineShapes.AddOLEObject(ref type, ref filename, ref oMissing, ref oMissing,ref oMissing,ref oMissing,ref oMissing,ref Anchor);//执行插入操作
            para.Range.InsertParagraphAfter();
        }

效果式样:

这样,就可以利用如上的这些东西自动生成计算说明书了。具体的排版可以再参照其他的具体细节。大致列出了如何操作word的基本方法。

重要提示:建议使用NPOI库进行操作,excel我查了一些方法,只能读取没法对一些复杂的表格进行写入,会造成表格丢失。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值