用C#動態產生Word文檔並將資料填入Word表格中

來源:互聯網
上載者:User

要使用C#操作word,首先要添加引用:

       1、添加引用->COM->Microsoft Word 11.0 Object Library

       2、在.cs檔案中添加

using Word;

下面的例子中包括C#對Word文檔的建立、插入表格、設定樣式等操作:

(例子中代碼有些涉及資料資訊部分被省略,重要是介紹一些C#操作word文檔的方法)

        public string CreateWordFile(string CheckedInfo)

        ...{

            string message = "";

            try

            ...{

                Object Nothing = System.Reflection.Missing.Value;

                Directory.CreateDirectory("C:/CNSI");  //建立檔案所在目錄

                string name = "CNSI_" + DateTime.Now.ToShortString()+".doc";

                object filename = "C://CNSI//" + name;  //檔案儲存路徑

                //建立Word文檔

                Word.Application WordApp = new Word.ApplicationClass();

                Word.Document WordDoc = WordApp.Documents.Add(ref Nothing, ref Nothing, ref Nothing, ref Nothing);

                //添加頁首

                WordApp.ActiveWindow.View.Type = WdViewType.wdOutlineView;

                WordApp.ActiveWindow.View.SeekView = WdSeekView.wdSeekPrimaryHeader;

                WordApp.ActiveWindow.ActivePane.Selection.InsertAfter("[頁首內容]");

                WordApp.Selection.ParagraphFormat.Alignment = Word.WdParagraphAlignment.wdAlignParagraphRight;//設定靠右對齊

                WordApp.ActiveWindow.View.SeekView = WdSeekView.wdSeekMainDocument;//跳出頁首設定

                WordApp.Selection.ParagraphFormat.LineSpacing = 15f;//設定文檔的行間距

                //移動焦點並換行

                object count = 14;

                object WdLine = Word.WdUnits.wdLine;//換一行;

                 WordApp.Selection.MoveDown(ref WdLine, ref count, ref Nothing);//移動焦點

                 WordApp.Selection.TypeParagraph();//插入段落

                 //文檔中建立表格

                 Word.Table newTable = WordDoc.Tables.Add(WordApp.Selection.Range, 12, 3, ref Nothing, ref Nothing);

                 //設定表格樣式

                 newTable.Borders.OutsideLineStyle = Word.WdLineStyle.wdLineStyleThickThinLargeGap;

                 newTable.Borders.InsideLineStyle = Word.WdLineStyle.wdLineStyleSingle;

                 newTable.Columns[1].Width = 100f;

                 newTable.Columns[2].Width = 220f;

                 newTable.Columns[3].Width = 105f;

                 //填充表格內容

                 newTable.Cell(1, 1).Range.Text = "產品詳細資料表";

                 newTable.Cell(1, 1).Range.Bold = 2;//設定儲存格中字型為粗體

                 //合併儲存格

                 newTable.Cell(1, 1).Merge(newTable.Cell(1, 3));

                 WordApp.Selection.Cells.VerticalAlignment = Word.WdCellVerticalAlignment.wdCellAlignVerticalCenter;//垂直置中

                 WordApp.Selection.ParagraphFormat.Alignment = Word.WdParagraphAlignment.wdAlignParagraphCenter;//水平置中

                        

                 //填充表格內容

                 newTable.Cell(2, 1).Range.Text = "產品基本資料";

                 newTable.Cell(2, 1).Range.Font.Color = Word.WdColor.wdColorDarkBlue;//設定儲存格內字型顏色

                 //合併儲存格

                 newTable.Cell(2, 1).Merge(newTable.Cell(2, 3));

                 WordApp.Selection.Cells.VerticalAlignment = Word.WdCellVerticalAlignment.wdCellAlignVerticalCenter;

                  //填充表格內容

                  newTable.Cell(3, 1).Range.Text = "品牌名稱:";

                  newTable.Cell(3, 2).Range.Text = BrandName;

                  //縱向合併儲存格

                  newTable.Cell(3, 3).Select();//選中一行

                  object moveUnit = Word.WdUnits.wdLine;

                  object moveCount = 5;

                  object moveExtend = Word.WdMovementType.wdExtend;

                   WordApp.Selection.MoveDown(ref moveUnit, ref moveCount, ref moveExtend);

                   WordApp.Selection.Cells.Merge();

                   //插入圖片

                   string FileName = Picture;//圖片所在路徑

                   object LinkToFile = false;

                   object SaveWithDocument = true;

                   object Anchor = WordDoc.Application.Selection.Range;

                   WordDoc.Application.ActiveDocument.InlineShapes.AddPicture(FileName, ref LinkToFile, ref SaveWithDocument, ref Anchor);

                    WordDoc.Application.ActiveDocument.InlineShapes[1].Width = 100f;//圖片寬度

                    WordDoc.Application.ActiveDocument.InlineShapes[1].Height = 100f;//圖片高度

                    //將圖片設定為四周環繞型

                    Word.Shape s = WordDoc.Application.ActiveDocument.InlineShapes[1].ConvertToShape();

                    s.WrapFormat.Type = Word.WdWrapType.wdWrapSquare;

                        

                    newTable.Cell(12, 1).Range.Text = "產品特殊屬性";

                    newTable.Cell(12, 1).Merge(newTable.Cell(12, 3));

                     //在表格中增加行

                     WordDoc.Content.Tables[1].Rows.Add(ref Nothing);

                      

                     WordDoc.Paragraphs.Last.Range.Text = "文檔建立時間:" + DateTime.Now.ToString();//“落款”

                     WordDoc.Paragraphs.Last.Alignment = Word.WdParagraphAlignment.wdAlignParagraphRight;

                    //檔案儲存

                    WordDoc.SaveAs(ref filename, ref Nothing, ref Nothing, ref Nothing, ref Nothing, ref Nothing, ref Nothing, ref Nothing, ref Nothing, ref Nothing, ref Nothing, ref Nothing, ref Nothing, ref Nothing, ref Nothing, ref Nothing);

                    WordDoc.Close(ref Nothing, ref Nothing, ref Nothing);

                    WordApp.Quit(ref Nothing, ref Nothing, ref Nothing);

                    message=name+"文檔產生成功,以儲存到C:CNSI下";

            }

            catch

            ...{

                message = "檔案匯出異常!";

            }

            return message;

        }

相關文章

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在5個工作日內處理。

如果您發現本社區中有涉嫌抄襲的內容,歡迎發送郵件至: info-contact@alibabacloud.com 進行舉報並提供相關證據,工作人員會在 5 個工作天內聯絡您,一經查實,本站將立刻刪除涉嫌侵權內容。

A Free Trial That Lets You Build Big!

Start building with 50+ products and up to 12 months usage for Elastic Compute Service

  • Sales Support

    1 on 1 presale consultation

  • After-Sales Support

    24/7 Technical Support 6 Free Tickets per Quarter Faster Response

  • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.