C#動態(tài)生成Word文檔步驟之一:添加引用->COM->Microsoft Word 11.0 Object Library
C#動態(tài)生成Word文檔步驟之二:在.cs文件中添加?using? Word;
下面的例子中包括C#對Word文檔的創(chuàng)建、插入表格、設(shè)置樣式等操作:?(例子中代碼有些涉及數(shù)據(jù)信息部分被省略,重要是介紹一些C#操作word文檔的方法)
- public ??? string ??CreateWordFile(? string ??CheckedInfo) ?
- ?????????...?{ ?
- ???????????? string ??message??=??? "" ?; ?
- ???????????? try ? ?
- ?????????????...?{ ?
- ???????????????Object?Nothing??=??System.Reflection.Missing.Value; ?
- ???????????????Directory.CreateDirectory(? "?C:/CNSI?" ?);??? //?創(chuàng)建文件所在目錄? ?
- ???????????????? string ??name??=??? "?CNSI_?" ???+??DateTime.Now.ToShortString()?+? "?.doc?" ?; ?
- ???????????????? object ??filename??=??? "?C://CNSI//?" ???+??name;???//?文件保存路徑 ?
- ???????????????? //?創(chuàng)建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(? "?[頁眉內(nèi)容]?" ?); ?
- ???????????????WordApp.Selection.ParagraphFormat.Alignment??=??Word.WdParagraphAlignment.wdAlignParagraphRight;? //?設(shè)置右對齊? ?
- ???????????????WordApp.ActiveWindow.View.SeekView??=??WdSeekView.wdSeekMainDocument;? //?跳出頁眉設(shè)置? ?
- ?
- ???????????????WordApp.Selection.ParagraphFormat.LineSpacing??=??15f;? //?設(shè)置文檔的行間距 ?
- ?
- ???????????????? //?移動焦點(diǎn)并換行? ?
- ???????????????? object ??count??=???14?; ?
- ???????????????? object ??WdLine??=??Word.WdUnits.wdLine;? //?換一行;? ?
- ????????????????WordApp.Selection.MoveDown(? ref ??WdLine,?? ref ??count,?? ref ??Nothing);? //?移動焦點(diǎn)? ?
- ????????????????WordApp.Selection.TypeParagraph();? //?插入段落 ?
- ?
- ????????????????? //?文檔中創(chuàng)建表格? ?
- ????????????????Word.Table?newTable??=??WordDoc.Tables.Add(WordApp.Selection.Range,??12?,??3?,?? ref ??Nothing,?? ref ??Nothing); ?
- ????????????????? //?設(shè)置表格樣式? ?
- ????????????????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; ?
- ?
- ????????????????? //?填充表格內(nèi)容? ?
- ????????????????newTable.Cell(?1?,??1?).Range.Text??=??? "?產(chǎn)品詳細(xì)信息表?" ?; ?
- ????????????????newTable.Cell(?1?,??1?).Range.Bold??=???2?;? //?設(shè)置單元格中字體為粗體 ?
- ????????????????? //?合并單元格? ?
- ????????????????newTable.Cell(?1?,??1?).Merge(newTable.Cell(?1?,??3?)); ?
- ????????????????WordApp.Selection.Cells.VerticalAlignment??=??Word.WdCellVerticalAlignment.wdCellAlignVerticalCenter;? //?垂直居中? ?
- ????????????????WordApp.Selection.ParagraphFormat.Alignment??=??Word.WdParagraphAlignment.wdAlignParagraphCenter;? //?水平居中 ?
- ??????????????????????? ?
- ????????????????? //?填充表格內(nèi)容? ?
- ????????????????newTable.Cell(?2?,??1?).Range.Text??=??? "?產(chǎn)品基本信息?" ?; ?
- ????????????????newTable.Cell(?2?,??1?).Range.Font.Color??=??Word.WdColor.wdColorDarkBlue;? //?設(shè)置單元格內(nèi)字體顏色 ?
- ????????????????? //?合并單元格? ?
- ????????????????newTable.Cell(?2?,??1?).Merge(newTable.Cell(?2?,??3?)); ?
- ????????????????WordApp.Selection.Cells.VerticalAlignment??=??Word.WdCellVerticalAlignment.wdCellAlignVerticalCenter; ?
- ?
- ?????????????????? //?填充表格內(nèi)容? ?
- ?????????????????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;? //?圖片高度 ?
- ???????????????????? //?將圖片設(shè)置為四周環(huán)繞型? ?
- ???????????????????Word.Shape?s??=??WordDoc.Application.ActiveDocument.InlineShapes[?1?].ConvertToShape(); ?
- ???????????????????s.WrapFormat.Type??=??Word.WdWrapType.wdWrapSquare; ?
- ??????????????????????? ?
- ???????????????????newTable.Cell(?12?,??1?).Range.Text??=??? "?產(chǎn)品特殊屬性?" ?; ?
- ???????????????????newTable.Cell(?12?,??1?).Merge(newTable.Cell(?12?,??3?)); ?
- ????????????????????? //?在表格中增加行? ?
- ????????????????????WordDoc.Content.Tables[?1?].Rows.Add(? ref ??Nothing); ?
- ????????????????????? ?
- ????????????????????WordDoc.Paragraphs.Last.Range.Text??=??? "?文檔創(chuàng)建時間:?" ???+??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??=??? "?文件導(dǎo)出異常!?" ?; ?
- ???????????}? ?
- ???????????? return ??message; ?
- ???????}? ?
更多文章、技術(shù)交流、商務(wù)合作、聯(lián)系博主
微信掃碼或搜索:z360901061

微信掃一掃加我為好友
QQ號聯(lián)系: 360901061
您的支持是博主寫作最大的動力,如果您喜歡我的文章,感覺我的文章對您有幫助,請用微信掃描下面二維碼支持博主2元、5元、10元、20元等您想捐的金額吧,狠狠點(diǎn)擊下面給點(diǎn)支持吧,站長非常感激您!手機(jī)微信長按不能支付解決辦法:請將微信支付二維碼保存到相冊,切換到微信,然后點(diǎn)擊微信右上角掃一掃功能,選擇支付二維碼完成支付。
【本文對您有幫助就好】元
