zoukankan      html  css  js  c++  java
  • c#导出包含图片的word文档

     object oMissing = Missing.Value;
             object oEndOfDoc = "\\endofdoc"; //指定编码
             //bool createByMe;
             //开始
             Microsoft.Office.Interop.Word._Application oWord;//声明一个Word应用程序
             Microsoft.Office.Interop.Word._Document oDoc;//声明一个Word文档
             //if (System.IO.File.Exists(fileName.ToString()))
             //{
             //    System.IO.File.Delete(fileName.ToString());
             //}
             //try
             //{
             //    //如果有正在运行的word实例,则直接采用当前的word实例,
             //    //否则,直接创建新实例,在最后退出时会报模板正在使用中等问题
             //    oWord = (Microsoft.Office.Interop.Word.Application)Marshal.GetActiveObject("Word.Application");
             //    createByMe = false;
             //}
             //catch
             //{
                 oWord = new Microsoft.Office.Interop.Word.Application();
             //    createByMe = true;
             //}
           
             oWord.Visible = true;//显示此文档
              oDoc = oWord.Documents.Add(ref oMissing, ref oMissing, ref oMissing, ref oMissing);
             //添加页眉
             //oWord.ActiveWindow.View.Type = Microsoft.Office.Interop.Word.WdViewType.wdOutlineView;
             //oWord.ActiveWindow.View.SeekView = Microsoft.Office.Interop.Word.WdSeekView.wdSeekPrimaryHeader;
             //oWord.ActiveWindow.ActivePane.Selection.InsertAfter("导出模板");
             //oWord.Selection.ParagraphFormat.Alignment = Microsoft.Office.Interop.Word.WdParagraphAlignment.wdAlignParagraphLeft;//设置右对齐
             //oWord.ActiveWindow.View.SeekView = Microsoft.Office.Interop.Word.WdSeekView.wdSeekMainDocument;//跳出页眉设置

             oWord.Selection.ParagraphFormat.LineSpacing = 3f;//设置文档的行间距


          
             //Insert a paragraph at the beginning of the document.
             //在文档开始的地方添加一个段落
             Microsoft.Office.Interop.Word.Paragraph oPara1;
             oPara1 = oDoc.Content.Paragraphs.Add(ref oMissing);

             //在此段落的行中添加字符串
             oPara1.Range.Text ="";
             //oPara1.Range.ParagraphFormat.Alignment = Microsoft.Office.Interop.Word.WdParagraphAlignment.wdAlignParagraphCenter;
             oPara1.Range.Font.Bold = 1;//加粗1
             oPara1.Range.Font.Size = 17;
             oPara1.Format.SpaceAfter = 24;      //24 pt spacing after paragraph.(在此段落之后添加24磅的行距)
             oPara1.Range.InsertParagraphAfter();

             
             //Insert a paragraph at the end of the document.
             //在文档最后添加一个段落
             Microsoft.Office.Interop.Word.Paragraph oPara2;
             //object oRng = oDoc.Bookmarks.get_Item(ref oEndOfDoc).Range;//实例化一个行
             oPara2 = oDoc.Content.Paragraphs.Add(ref oMissing);//将oRng这个行添加到文档中并返回
             oPara2.Range.Text = ""  ;//在此段落的行中添加字符串
             oPara2.Range.ParagraphFormat.Alignment = Microsoft.Office.Interop.Word.WdParagraphAlignment.wdAlignParagraphLeft;
             oPara2.Range.Font.Size = 12;
             oPara2.Format.SpaceAfter = 0;//在此段落之后添加6磅的行距
             //oPara2.Range.Text = dict.CompanyName;
             oPara2.Range.InsertParagraphAfter();

             Microsoft.Office.Interop.Word.Paragraph oPara3;
             //object oRng = oDoc.Bookmarks.get_Item(ref oEndOfDoc).Range;//实例化一个行
             oPara3 = oDoc.Content.Paragraphs.Add(ref oMissing);//将oRng这个行添加到文档中并返回
             oPara3.Range.ParagraphFormat.Alignment = Microsoft.Office.Interop.Word.WdParagraphAlignment.wdAlignParagraphLeft;
             oPara3.Range.Font.Size = 12;
             oPara3.Range.Text ="          ";//在此段落的行中添加字符串
             oPara3.Format.SpaceBefore = 6;
             oPara3.Range.InsertParagraphAfter();

             Microsoft.Office.Interop.Word.Paragraph oPara4;
             //object oRng = oDoc.Bookmarks.get_Item(ref oEndOfDoc).Range;//实例化一个行
             oPara4 = oDoc.Content.Paragraphs.Add(ref oMissing);//将oRng这个行添加到文档中并返回
             oPara4.Range.ParagraphFormat.Alignment = Microsoft.Office.Interop.Word.WdParagraphAlignment.wdAlignParagraphLeft;
             oPara4.Range.Font.Size = 12;
             oPara4.Range.Text ="  ";//在此段落的行中添加字符串
             oPara4.Format.SpaceBefore = 6;
             oPara4.Range.InsertParagraphAfter();

        

             //插入图片
             string FileName = “”;//图片所在路径
          
                    object LinkToFile = false;
                    object SaveWithDocument = true;
                    object Anchor = oDoc.Application.Selection.Range;
                    object top = 80;
                    object left = 2;
                    object width = 50;
                    object height = 40;
                    string sourefile = Server.MapPath("\\Content\\File");
                    oDoc.Shapes.AddPicture(FileName, ref LinkToFile, ref SaveWithDocument, ref left, ref top, ref width, ref height, ref Anchor);
           
             //object LinkToFile = false;
             //object SaveWithDocument = true;
             //object Anchor = oDoc.Application.Selection.Range;
             //object top = 84;
             //object left = 2;
             //object width = 50;
             //object height = 40;
             //string sourefile = Server.MapPath("\\Content\\File");
             //oDoc.Shapes.AddPicture(FileName, ref LinkToFile, ref SaveWithDocument, ref left, ref top, ref width, ref height, ref Anchor);
            }
             //oDoc.Save();
             //oDoc.Application.ActiveDocument.InlineShapes.AddPicture(FileName, ref LinkToFile, ref SaveWithDocument, ref Anchor);
             //oDoc.Application.ActiveDocument.InlineShapes[1].Width = 50;//图片宽度(单位为磅,1磅=0.353毫米=0.0353厘米),这里是把9CM转换为磅
             //oDoc.Application.ActiveDocument.InlineShapes[1].Height = 40;//图片高度
             
             
             //将图片设置为四周环绕型
             //Microsoft.Office.Interop.Word.Shape s = oDoc.Application.ActiveDocument.InlineShapes[1].ConvertToShape();
             //s.WrapFormat.Type = Microsoft.Office.Interop.Word.WdWrapType.wdWrapInline

             //oDoc.Paragraphs.Last.Range.Text = "文档创建时间:" + DateTime.Now.ToString();//“落款”
             //oDoc.Paragraphs.Last.Alignment = Microsoft.Office.Interop.Word.WdParagraphAlignment.wdAlignParagraphRight;


             //oWord.PrintPreview = true;//打开文档预览

             //文件保存
             string fileName = string.Format("{0}.doc", DateTime.Now.ToString("yyyyMMddHHmmss"));
             string ss = Server.MapPath(string.Format("\\Content\\File\\{0}", fileName));
             object filename = ss;  //文件保存路径
             //执行保存
             oDoc.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);
             //关闭文档
             oDoc.Close(ref oMissing, ref oMissing, ref oMissing);
             //关闭文档应用对象
             oWord.Quit(ref oMissing, ref oMissing, ref oMissing);

  • 相关阅读:
    WPF控件模型
    WPF布局之Canvas
    WPF布局之Grid
    WPF布局之Panel
    cxGrid让指定的某行自动呈选选中的状态
    VMware Esxi5.5中嵌套虚拟机的网络设置方法
    SQLServer (2005/2008) 日志清理方法
    控制cxGrid 主从表的明细只展开一个
    关于Delphi cxGrid主从表中从表只能编辑第一条记录的问题
    自动化工程师面试常见问题
  • 原文地址:https://www.cnblogs.com/syfblog/p/2804639.html
Copyright © 2011-2022 走看看