博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
c#导出包含图片的word文档
阅读量:6940 次
发布时间:2019-06-27

本文共 5378 字,大约阅读时间需要 17 分钟。

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

转载于:https://www.cnblogs.com/syfblog/archive/2012/12/06/2804639.html

你可能感兴趣的文章
SSH公钥生成及配置
查看>>
iOS 新浪微博快速集成
查看>>
禁用浏览器返回
查看>>
flask+uwsgi+nginx部署网站
查看>>
从九寨沟地震 细数那些数据中心受过的伤害
查看>>
BIPlatform的安装以及本地开发环境搭建
查看>>
GOF23之适配器模式
查看>>
PHP跨页面SESSION丢失问题
查看>>
Java Socket探究
查看>>
现在在下载Google APIs by Google Inc. 速度为1kib/s,特此纪念又...
查看>>
Android Push开源解决方案
查看>>
安卓constraintLayout中app:srcCompat设置的图片显示不出来
查看>>
webmagic新版文档(更新中)
查看>>
nginx 安装在ubuntu上
查看>>
Xtrabackup全量备份/增量备份脚本
查看>>
白天谋生存,晚上谋发展
查看>>
hive 12及以后,可以使用非同步查询
查看>>
CentOS 7安装部署ELK 6.2.4
查看>>
通过ansible批量安装部署mysql
查看>>
Kafka/Metaq设计思想学习笔记
查看>>