国产精品乱码一区-性开放网站-少妇又紧又爽视频-西西大胆午夜人体视频-国产极品一区-欧美成人tv-四虎av在线-国产无遮挡无码视频免费软件-中文字幕亚洲乱码熟女一区二区-日产精品一区二区三区在线观看-亚洲国产亚综合在线区-五月婷婷综合色-亚洲日本视频在线观看-97精品人人妻人人-久久久久久一区二区三区四区别墅-www.免费av-波多野结衣绝顶大高潮-日本在线a一区视频高清视频-强美女免费网站在线视频-亚洲永久免费

注冊會員 登錄
機械社區 返回首頁

草祭祀的個人空間 http://www.whclglass.com.cn/?851558 [收藏] [復制] [分享] [RSS]

日志

c#有關的自動設計平臺(word操作篇)

已有 594 次閱讀2013-1-13 10:50 |個人分類:死海拾穗| 機械設計, 自動化, 自動設計

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我查了一些方法,只能讀取沒法對一些復雜的表格進行寫入,會造成表格丟失。


路過

雷人

握手

鮮花

雞蛋

評論 (0 個評論)

facelist

您需要登錄后才可以評論 登錄 | 注冊會員

Archiver|手機版|小黑屋|機械社區 ( 京ICP備10217105號-1,京ICP證050210號,浙公網安備33038202004372號 )

GMT+8, 2025-9-4 11:03 , Processed in 0.043824 second(s), 18 queries , Gzip On.

Powered by Discuz! X3.5 Licensed

© 2001-2025 Discuz! Team.

返回頂部