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);

  • 相关阅读:
    如何分析损益表
    如何修改windows 2008(R2)的远程桌面连接数
    08年Gartner商务智能平台魔法四分区
    浅谈BI项目——为失败BI项目解惑(转IT168)
    商业智能项目错误经验总结(三) 需求调研
    asp.net学习笔记·Cookie
    C#安全调用线程的步骤
    一般处理程序学习初步——最简单的一般处理程序
    asp.net学习笔记·get与post区别
    C#中使用DES和AES加密解密
  • 原文地址:https://www.cnblogs.com/syfblog/p/2804639.html
Copyright © 2011-2022 走看看