• 设为首页
  • 点击收藏
  • 手机版
    手机扫一扫访问
    迪恩网络手机版
  • 关注官方公众号
    微信扫一扫关注
    公众号

c#word操作

原作者: [db:作者] 来自: [db:来源] 收藏 邀请

 

  1   public class WordOperate
  2     {
  3 
  4         #region 新建Word文档
  5         /// <summary>
  6         /// 动态生成Word文档并填充内容 
  7         /// </summary>
  8         /// <param name="dir">文档目录</param>
  9         /// <param name="fileName">文档名</param>
 10         /// <returns>返回自定义信息</returns>
 11         public static bool CreateWordFile(string dir, string fileName)
 12         {
 13             try
 14             {
 15                 Object oMissing = System.Reflection.Missing.Value;
 16 
 17                 if (!Directory.Exists(dir))
 18                 {
 19                     //创建文件所在目录
 20                     Directory.CreateDirectory(dir);
 21                 }
 22                 //创建Word文档(Microsoft.Office.Interop.Word)
 23                 Microsoft.Office.Interop.Word._Application WordApp = new Application();
 24                 WordApp.Visible = true;
 25                 Microsoft.Office.Interop.Word._Document WordDoc = WordApp.Documents.Add(
 26                     ref oMissing, ref oMissing, ref oMissing, ref oMissing);
 27                                 
 28                 //保存
 29                 object filename = dir + fileName;
 30                 WordDoc.SaveAs(ref filename, ref oMissing, ref oMissing, ref oMissing, ref oMissing,
 31                     ref oMissing, ref oMissing, ref oMissing, ref oMissing, ref oMissing, ref oMissing, 
 32                     ref oMissing, ref oMissing, ref oMissing, ref oMissing, ref oMissing);
 33                 WordDoc.Close(ref oMissing, ref oMissing, ref oMissing);
 34                 WordApp.Quit(ref oMissing, ref oMissing, ref oMissing);
 35                 return true;
 36             }
 37             catch (Exception e)
 38             {
 39                 Console.WriteLine(e.Message);
 40                 Console.WriteLine(e.StackTrace);
 41                 return false;
 42             }
 43         }
 44 
 45         #endregion 新建Word文档
 46 
 47         #region 给word文档添加页眉页脚
 48         /// <summary>
 49         /// 给word文档添加页眉
 50         /// </summary>
 51         /// <param name="filePath">文件名</param>
 52         /// <returns></returns>
 53         public static bool AddPageHeaderFooter(string filePath)
 54         {
 55             try
 56             {
 57                 Object oMissing = System.Reflection.Missing.Value;
 58                 Microsoft.Office.Interop.Word._Application WordApp = new Application();
 59                 WordApp.Visible = true;
 60                 object filename = filePath;
 61                 Microsoft.Office.Interop.Word._Document WordDoc = WordApp.Documents.Open(ref filename, ref oMissing, 
 62                     ref oMissing, ref oMissing, ref oMissing, ref oMissing, ref oMissing, ref oMissing, ref oMissing, 
 63                     ref oMissing, ref oMissing, ref oMissing, ref oMissing, ref oMissing, ref oMissing, ref oMissing);
 64 
 65                 ////添加页眉方法一:
 66                 //WordApp.ActiveWindow.View.Type = WdViewType.wdOutlineView;
 67                 //WordApp.ActiveWindow.View.SeekView = WdSeekView.wdSeekPrimaryHeader;
 68                 //WordApp.ActiveWindow.ActivePane.Selection.InsertAfter( "**公司" );//页眉内容
 69 
 70                 ////添加页眉方法二:
 71                 if (WordApp.ActiveWindow.ActivePane.View.Type == WdViewType.wdNormalView ||
 72                     WordApp.ActiveWindow.ActivePane.View.Type == WdViewType.wdOutlineView)
 73                 {
 74                     WordApp.ActiveWindow.ActivePane.View.Type = WdViewType.wdPrintView;
 75                 }
 76                 WordApp.ActiveWindow.View.SeekView = WdSeekView.wdSeekCurrentPageHeader;
 77                 WordApp.Selection.HeaderFooter.LinkToPrevious = false;
 78                 WordApp.Selection.HeaderFooter.Range.ParagraphFormat.Alignment = WdParagraphAlignment.wdAlignParagraphCenter;
 79                 WordApp.Selection.HeaderFooter.Range.Text = "页眉内容";
 80                 
 81                 WordApp.ActiveWindow.View.SeekView = WdSeekView.wdSeekCurrentPageFooter;
 82                 WordApp.Selection.HeaderFooter.LinkToPrevious = false;
 83                 WordApp.Selection.HeaderFooter.Range.ParagraphFormat.Alignment = WdParagraphAlignment.wdAlignParagraphCenter;
 84                 WordApp.ActiveWindow.ActivePane.Selection.InsertAfter("页脚内容");
 85 
 86                 //跳出页眉页脚设置
 87                 WordApp.ActiveWindow.View.SeekView = WdSeekView.wdSeekMainDocument;
 88 
 89                 //保存
 90                 WordDoc.Save();
 91                 WordDoc.Close(ref oMissing, ref oMissing, ref oMissing);
 92                 WordApp.Quit(ref oMissing, ref oMissing, ref oMissing);
 93                 return true;
 94             }
 95             catch (Exception e)
 96             {
 97                 Console.WriteLine(e.Message);
 98                 Console.WriteLine(e.StackTrace);
 99                 return false;
100             }
101         }
102         #endregion 给word文档添加页眉页脚
103 
104         #region 设置文档格式并添加文本内容
105         /// <summary>
106         /// 设置文档格式并添加文本内容
107         /// </summary>
108         /// <param name="filePath">文件名</param>
109         /// <returns></returns>
110         public static bool AddContent(string filePath)
111         {
112             try
113             {
114                 Object oMissing = System.Reflection.Missing.Value;
115                 Microsoft.Office.Interop.Word._Application WordApp = new Application();
116                 WordApp.Visible = true;
117                 object filename = filePath;
118                 Microsoft.Office.Interop.Word._Document WordDoc = WordApp.Documents.Open(ref filename, ref oMissing,
119                     ref oMissing, ref oMissing, ref oMissing, ref oMissing, ref oMissing, ref oMissing, ref oMissing,
120                     ref oMissing, ref oMissing, ref oMissing, ref oMissing, ref oMissing, ref oMissing, ref oMissing);
121 
122                 //设置居左
123                 WordApp.Selection.ParagraphFormat.Alignment = Microsoft.Office.Interop.Word.WdParagraphAlignment.wdAlignParagraphLeft;
124 
125                 //设置文档的行间距
126                 WordApp.Selection.ParagraphFormat.LineSpacing = 15f;
127                 //插入段落
128                 //WordApp.Selection.TypeParagraph();
129                 Microsoft.Office.Interop.Word.Paragraph para;
130                 para = WordDoc.Content.Paragraphs.Add(ref oMissing);
131                 //正常格式
132                 para.Range.Text = "This is paragraph 1";
133                 //para.Range.Font.Bold = 2;
134                 //para.Range.Font.Color = WdColor.wdColorRed;
135                 //para.Range.Font.Italic = 2;
136                 para.Range.InsertParagraphAfter();
137 
138                 para.Range.Text = "This is paragraph 2";
139                 para.Range.InsertParagraphAfter();
140 
141                 //插入Hyperlink
142                 Microsoft.Office.Interop.Word.Selection mySelection = WordApp.ActiveWindow.Selection;
143                 mySelection.Start = 9999;
144                 mySelection.End = 9999;
145                 Microsoft.Office.Interop.Word.Range myRange = mySelection.Range;
146                                 
147                 Microsoft.Office.Interop.Word.Hyperlinks myLinks = WordDoc.Hyperlinks;
148                 object linkAddr = @"http://www.cnblogs.com/lantionzy";
149                 Microsoft.Office.Interop.Word.Hyperlink myLink = myLinks.Add(myRange, ref linkAddr, 
150                     ref oMissing);
151                 WordApp.ActiveWindow.Selection.InsertAfter("\n");
152               
153                 //落款
154                 WordDoc.Paragraphs.Last.Range.Text = "文档创建时间:" + DateTime.Now.ToString();
155                 WordDoc.Paragraphs.Last.Alignment = Microsoft.Office.Interop.Word.WdParagraphAlignment.wdAlignParagraphRight;
156 
157                 //保存
158                 WordDoc.Save();
159                 WordDoc.Close(ref oMissing, ref oMissing, ref oMissing);
160                 WordApp.Quit(ref oMissing, ref oMissing, ref oMissing);
161                 return true;
162             }
163             catch (Exception e)
164             {
165                 Console.WriteLine(e.Message);
166                 Console.WriteLine(e.StackTrace);
167                 return false;
168             }
169         }
170 
171         #endregion 设置文档格式并添加文本内容
172 
173         #region 文档中添加图片
174         /// <summary>
175         /// 文档中添加图片
176         /// </summary>
177         /// <param name="filePath">word文件名</param>
178         /// <param name="picPath">picture文件名</param>
179         /// <returns></returns>
180         public static bool AddPicture(string filePath, string picPath)
181         {
182             try
183             {
184                 Object oMissing = System.Reflection.Missing.Value;
185                 Microsoft.Office.Interop.Word._Application WordApp = new Application();
186                 WordApp.Visible = true;
187                 object filename = filePath;
188                 Microsoft.Office.Interop.Word._Document WordDoc = WordApp.Documents.Open(ref filename, ref oMissing,
189                     ref oMissing, ref oMissing, ref oMissing, ref oMissing, ref oMissing, ref oMissing, ref oMissing,
190                     ref oMissing, ref oMissing, ref oMissing, ref oMissing, ref oMissing, ref oMissing, ref oMissing);
191 
192                 //移动光标文档末尾
193                 object count = WordDoc.Paragraphs.Count;
194                 object WdLine = Microsoft.Office.Interop.Word.WdUnits.wdParagraph;
195                 WordApp.Selection.MoveDown(ref WdLine, ref count, ref oMissing);//移动焦点
196                 WordApp.Selection.TypeParagraph();//插入段落
197 
198                 object LinkToFile = false;
199                 object SaveWithDocument = true;
200                 object Anchor = WordDoc.Application.Selection.Range;
201                 WordDoc.Application.ActiveDocument.InlineShapes.AddPicture(picPath, ref LinkToFile, ref SaveWithDocument, ref Anchor);
202 
203                 //保存
204                 WordDoc.Save();
205                 WordDoc.Close(ref oMissing, ref oMissing, ref oMissing);
206                 WordApp.Quit(ref oMissing, ref oMissing, ref oMissing);
207                 return true;
208             }
209             catch (Exception e)
210             {
211                 Console.WriteLine(e.Message);
212                 Console.WriteLine(e.StackTrace);
213                 return false;
214             }
215         }
216         #endregion 文档中添加图片
217 
218         #region 表格处理(插入表格、设置格式、填充内容)
219         /// <summary>
220         /// 表格处理
221         /// </summary>
222         /// <param name="filePath">word文件名</param>
223         /// <returns></returns>
224         public static bool AddTable(string filePath)
225         {
226             try
227             {
228                 Object oMissing = System.Reflection.Missing.Value;
229                 Microsoft.Office.Interop.Word._Application WordApp = new Application();
230                 WordApp.Visible = true;
231                 object filename = filePath;
232                 Microsoft.Office.Interop.Word._Document WordDoc = WordApp.Documents.Open(ref filename, ref oMissing, ref oMissing, ref oMissing, ref oMissing,
233                     ref oMissing, ref oMissing, ref oMissing, ref oMissing, ref oMissing, ref oMissing, ref oMissing, ref oMissing, ref oMissing, ref oMissing, ref oMissing);
234 
235                 //插入表格
236                 Microsoft.Office.Interop.Word.Table newTable = WordDoc.Tables.Add(WordApp.Selection.Range, 12, 3, ref oMissing, ref oMissing);
237                 //设置表格
238                 newTable.Borders.OutsideLineStyle = Microsoft.Office.Interop.Word.WdLineStyle.wdLineStyleThickThinLargeGap;
239                 newTable.Borders.InsideLineStyle = Microsoft.Office.Interop.Word.WdLineStyle.wdLineStyleSingle;
240                 newTable.Columns[1].Width = 100f;
241                 newTable.Columns[2].Width = 220f;
242                 newTable.Columns[3].Width = 105f;
243                 
244                 //填充表格内容
245                 newTable.Cell(1, 1).Range.Text = "我的简历";
246                 //设置单元格中字体为粗体
247                 newTable.Cell(1, 1).Range.Bold = 2;
248 
249                 //合并单元格
250                 newTable.Cell(1, 1).Merge(newTable.Cell(1, 3));
251                 
252                 //垂直居中
253                 WordApp.Selection.Cells.VerticalAlignment = Microsoft.Office.Interop.Word.WdCellVerticalAlignment.wdCellAlignVerticalCenter;
254                 //水平居中
255                 WordApp.Selection.ParagraphFormat.Alignment = Microsoft.Office.Interop.Word.WdParagraphAlignment.wdAlignParagraphCenter;
256 
257                 //填充表格内容
258                 newTable.Cell(2, 1).Range.Text = "座右铭:...";
259                 //设置单元格内字体颜色
260                 newTable.Cell(2, 1).Range.Font.Color = Microsoft.Office.Interop.Word.WdColor.wdColorDarkBlue;
261                 //合并单元格
262                 newTable.Cell(2, 1).Merge(newTable.Cell(2, 3));
263                 WordApp.Selection.Cells.VerticalAlignment = Microsoft.Office.Interop.Word.WdCellVerticalAlignment.wdCellAlignVerticalCenter;
264 
265                 //填充表格内容
266                 newTable.Cell(3, 1).Range.Text = "姓名:";
267                 newTable.Cell(3, 2).Range.Text = "雷鑫";
268                 //纵向合并单元格
269                 newTable.Cell(3, 3).Select();
270                 //选中一行
271                 object moveUnit = Microsoft.Office.Interop.Word.WdUnits.wdLine;
272                 object moveCount = 3;
273                 object moveExtend = Microsoft.Office.Interop.Word.WdMovementType.wdExtend;
274                 WordApp.Selection.MoveDown(ref moveUnit, ref moveCount, ref moveExtend);
275                 WordApp.Selection.Cells.Merge();
276 
277                 //表格中插入图片
278                 string pictureFileName = System.IO.Directory.GetCurrentDirectory() + @"\picture.jpg";
279                 object LinkToFile = false;
280                 object SaveWithDocument = true;
281                 object Anchor = WordDoc.Application.Selection.Range;
282                 WordDoc.Application.ActiveDocument.InlineShapes.AddPicture(pictureFileName, ref LinkToFile, ref SaveWithDocument, ref Anchor);
283                 //图片宽度
284                 WordDoc.Application.ActiveDocument.InlineShapes[1].Width = 100f;
285                 //图片高度
286                 WordDoc.Application.ActiveDocument.InlineShapes[1].Height = 100f;
287                 //将图片设置为四周环绕型
288                 Microsoft.Office.Interop.Word.Shape s = WordDoc.Application.ActiveDocument.InlineShapes[1].ConvertToShape();
289                 s.WrapFormat.Type = Microsoft.Office.Interop.Word.WdWrapType.wdWrapSquare;
290 
291                 newTable.Cell(12, 1).Range.Text = "备注:";
292                 newTable.Cell(12, 1).Merge(newTable.Cell(12, 3));
293                 //在表格中增加行
294                 WordDoc.Content.Tables[1].Rows.Add(ref oMissing);
295 
296                 //保存
297                 WordDoc.Save();
298                 WordDoc.Close(ref oMissing, ref oMissing, ref oMissing);
299                 WordApp.Quit(ref oMissing, ref oMissing, ref oMissing);
300                 return true;
301             }
302             catch (Exception e)
303             {
304                 Console.WriteLine(e.Message);
305                 Console.WriteLine(e.StackTrace);
306                 return false;
307             }
308         }
309         #endregion #region 表格处理
310 
311         #region 把Word文档转化为Html文件
312         /// <summary>
313         /// 把Word文档转化为Html文件
314         /// </summary>
315         /// <param name="wordFileName">word文件名</param>
316         /// <param name="htmlFileName">要保存的html文件名</param>
317         /// <returns></returns>
318         public static bool WordToHtml(string wordFileName, string htmlFileName)
319         {
320             try
321             {
322                 Object oMissing = System.Reflection.Missing.Value;
323                 Microsoft.O 

鲜花

握手

雷人

路过

鸡蛋
该文章已有0人参与评论

请发表评论

全部评论

专题导读
上一篇:
回firelong之C#慢发布时间:2022-07-13
下一篇:
ArcEngineVS2005C#发布时间:2022-07-13
热门推荐
热门话题
阅读排行榜

扫描微信二维码

查看手机版网站

随时了解更新最新资讯

139-2527-9053

在线客服(服务时间 9:00~18:00)

在线QQ客服
地址:深圳市南山区西丽大学城创智工业园
电邮:jeky_zhao#qq.com
移动电话:139-2527-9053

Powered by 互联科技 X3.4© 2001-2213 极客世界.|Sitemap