tnblog
首页
视频
资源
登录

根据客户端勾选信息,根据模板批量导出word

7474人阅读 2019/7/3 9:44 总访问:51130 评论:0 收藏:0 手机
分类: .net

                 

  1.  /// <summary>
  2.         /// 导出
  3.         /// <param name="param">前端值数组</param>
  4.         /// <returns></returns>
  5.         public  ActionResult Word(string param)
  6.         {
  7.             try
  8.             {
  9.                 ResultInfo result = new ResultInfo();
  10.                 JavaScriptSerializer jss = new JavaScriptSerializer();
  11.                 //将字符串转换成json对象          
  12.                 List<InfoHelperClass> cp = jss.Deserialize<List<InfoHelperClass>>(param);
  13.                 //string logpath = Server.MapPath("..") + "/Exportfile/log.txt";
  14.                 //string datastring = "";
  15.                 //int k = 0;
  16.                 string filename = "";
  17.                 //声明书签数组  
  18.                 object[] oBookMark = new object[9];
  19.                  //赋值书签名     ,也是模板书签名 
  20.                 oBookMark[0] = "Id";  //第几期   
  21.                 oBookMark[1] = "Department";  //单位  
  22.                 oBookMark[2] = "Sender";  //拟稿     
  23.                 oBookMark[3] = "hegao";  //核稿 
  24.                 oBookMark[4] = "issecrecy";//是否泄密     
  25.                 oBookMark[5] = "createtime";//上报时间
  26.                 oBookMark[6] = "Seconduser";//签发
  27.                 oBookMark[7] = "title";  //标题       
  28.                 oBookMark[8] = "content";//正文
  29.                 foreachvar item in cp )
  30.                 {
  31.                      //创建文档
  32.                     object oMissing = System.Reflection.Missing.Value;
  33.                     //创建一个Word应用程序实例            
  34.                     Microsoft.Office.Interop.Word._Application oWord = new Microsoft.Office.Interop.Word.Application();
  35.                     //设置为不可见            
  36.                     oWord.Visible = false;
  37.                     //模板文件地址            
  38.                     object oTemplate = Server.MapPath("..") + "/Template/InformationTemplate.docx";
  39.                     //一模板为基础生成文档
  40.                     Microsoft.Office.Interop.Word._Document oDoc = oWord.Documents.Add(ref oTemplate, ref oMissing, ref oMissing, ref oMissing);
  41.                     
  42.                     //赋值数据到书签的位置  
  43.                     oDoc.Bookmarks.get_Item(ref oBookMark[0]).Range.Text = item.Id.ToString();
  44.                     oDoc.Bookmarks.get_Item(ref oBookMark[1]).Range.Text = item.Department;
  45.                     oDoc.Bookmarks.get_Item(ref oBookMark[2]).Range.Text = item.Sender;
  46.                     oDoc.Bookmarks.get_Item(ref oBookMark[3]).Range.Text = item.Firstuser;
  47.                     if (item.issecrecy == 0)
  48.                     {
  49.                         oDoc.Bookmarks.get_Item(ref oBookMark[4]).Range.Text = item.issecrecy.ToString("是");
  50.                     }
  51.                     else {
  52.                         oDoc.Bookmarks.get_Item(ref oBookMark[4]).Range.Text = item.issecrecy.ToString("否");
  53.                     }
  54.                    
  55.                     // oDoc.Bookmarks.get_Item(ref oBookMark[5]).Range.Text = item.createtime.ToString();
  56.                     oDoc.Bookmarks.get_Item(ref oBookMark[5]).Range.Text = item.createtime.ToLongDateString().ToString();
  57.                     oDoc.Bookmarks.get_Item(ref oBookMark[6]).Range.Text = item.Seconduser;
  58.                     oDoc.Bookmarks.get_Item(ref oBookMark[7]).Range.Text = item.title;
  59.                     oDoc.Bookmarks.get_Item(ref oBookMark[8]).Range.Text = item.content;
  60.                     //k++;
  61.                     ////输出日志
  62.                     //datastring = item.Id.ToString() + " |  " + item.Department.ToString() + " |  " + item.Sender.ToString() + " |  " + item.Firstuser.ToString() + " |  " + item.issecrecy.ToString() + " |  " + item.createtime.ToString() + " |  " + item.Seconduser.ToString() + " |  " + item.title.ToString() + " | " + item.content.ToString();
  63.                     //StreamWriter sw = new StreamWriter(logpath, true);
  64.                     //sw.WriteLine(datastring);
  65.                     //sw.WriteLine(k);
  66.                     //sw.Close();
  67.                       //导出信息名称
  68.                     filename = item.title + "-上报信息-" + item.Id + ".doc";
  69.                     //生成word ,并保存在文件夹中             
  70.                     object filepath = Server.MapPath("..") + "/Exportfile/" + filename;
  71.                     oDoc.SaveAs(ref filepath, 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);
  72.                     oDoc.Close(ref oMissing, ref oMissing, ref oMissing);
  73.                     //关闭word                 
  74.                     oWord.Quit(ref oMissing, ref oMissing, ref oMissing);
  75.                     oDoc = null;
  76.                     oWord = null;
  77.                 }
  78.                
  79.                 return Json(result);
  80.             }
  81.             catch (Exception e)
  82.             {
  83.                 //ExceptionContext mExceptionContext = new ExceptionContext(new ControllerContext(), e);
  84.                 //OnException(mExceptionContext);
  85.                 string aa = e.Message;
  86.                 return null;
  87.             }
  88.         }


评价

css弹性盒子flex布局

css弹性盒子由于版本不同浏览器问题造成了一些不同的写法display:flexbox;在google浏览器中如果使用下面的写法就不行displa...

可输入下拉文本框据输入动态加载数据 jquery-editable-select

用到一个jquery-editable-select的控件github地址:https://github.com/indrimuska/jquery-editable-select这个插件的原理是...

.net mvc分部页.net core分部页

.net分部页的三种方式第一种:@Html.Partial(&quot;_分部页&quot;)第二种:@{ Html.RenderPartial(&quot;分部页&quot;);}...

css中单位pxemrem和vh/vw的理解

&gt;px像素(Pixel)。相对长度单位。像素px是相对于显示器屏幕分辨率而言的。em是相对长度单位。相对于当前对象内文本的字...

让IIS支持webp格式图片让IIS支持vtt格式iis设置mime类型iis配置支持的类型

webp格式图片可以让图片体积变小。也让下载图片变得更加困难一点 在线制作webp工具 https://www.upyun.com/webp?utm_mediu...

网页上传文件断点续传的实现无视文件大小上传以及datatables基本用法

首先明白js是客户带执行代码,c#是服务器上执行代码。本地文件需要用到js处理,服务器端接受c#代码处理1.HTML页面,文件信...

如何使用图标像使用文字一样使用文本图标的方法

1.首先在Iconfont-阿里巴巴矢量图标库上面找到你需要的图标然后加入你的购物车然后选择图标;注意:每个类型的图标会大小不...

使用七牛云的cdn服务提高图片的加载速度

CDN介绍CDN的全称是Content Delivery Network,即内容分发网络。CDN加速主要是加速静态资源,如网站上面上传的图片、媒体,...

通俗易懂什么是.NET?什么是.NET Framework?什么是.NET Core?

朋友圈@蓝羽 看到一篇文章写的太详细太通俗了,搬过来细细看完,保证你对.NET有个新的认识理解原文地址:https://www.cnblo...

JS监听input、keydown有输入法时打字完成后触发事件

在给输入框绑定input或keydown事件时预期效果是有输入法时,输入中文后触发事件,不希望输一个字母就触发一次事件可以用到c...

修改了css后让浏览器从缓存中更新

当我们修改了css后,如果不做一些操作,浏览器是不会自动更新我们的样式文件的。除非是过期或者用户手动刷新清理缓存等。所...

C MVC RedirectToAction跳转时候传递参数Action之间传值

MVC Action之间传值,页面跳转传值方法一:路由传值很简单直接使用 RedirectToAction(string actionName, string controller...

当你工作遇到以下几种状态时请果断跳槽走人

已经有想跳槽的念头,但是一直磨磨蹭蹭、犹犹豫豫的混日子,这种念头或者一直持续,或者是不是冒出头来占据你的思维了。于...

C与Java二进制编码转换补码

在C#与Java接口对接时,需要将图片转化为二进制编码传输,这时候发现c#转换出来的编码的值是0~255的范围,而java方需要的是...
老子许灵灵,写字第一名
排名
45
文章
7
粉丝
3
评论
2
基于open office 把各种类型转为pdf在线预览
剑轩 : 都是些高大上的问题!
ICP备案 :渝ICP备18016597号-1
网站信息:2018-2025TNBLOG.NET
技术交流:群号656732739
联系我们:contact@tnblog.net
公网安备:50010702506256
欢迎加群交流技术
因为痛苦太有价值,因为回忆太珍贵,所以我们更要继续往前走。