C# 导出word文档及批量导出word文档(3)
在初始化WordHelper时,要获取模板的相对路径。获取文档的相对路径多个地方要用到,比如批量导出时要先保存文件到指定路径下,再压缩打包下载,所以专门写了个关于获取文档的相对路径的类。
1 #region 获取文档的相对路径 2 public class WordFilePath 3 { 4 #region 返回文件带路径值 5 /// <summary> 6 /// 返回文件带路径值 7 /// </summary> 8 /// <param name="FilePth">文件所在文件夹名称</param> 9 /// <param name="FileName">文件名</param> 10 /// <returns></returns> 11 public static string FileWithFilePath(string FilePth, string FileName = null) 12 { 13 string strFile = ""; 14 if (!string.IsNullOrEmpty(FilePth)) 15 strFile += "~/" + FilePth + "/"; 16 if (!string.IsNullOrEmpty(FileName)) 17 strFile += FileName; 18 19 return strFile; 20 } 21 #endregion 22 23 #region 判断文件或文件夹是否存在 24 /// <summary> 25 /// 判断文件或文件夹是否存在 26 /// </summary> 27 /// <param name="FilePth">文件所在文件夹名称</param> 28 /// <param name="FileName">文件名</param> 29 /// <returns></returns> 30 public static bool ExistFile(string FilePth, string FileName = null) 31 { 32 return System.IO.File.Exists(GetFilePath(FilePth, FileName)); 33 } 34 #endregion 35 36 #region 获取文件及文件夹的相对路径 37 /// <summary> 38 /// 获取文件及文件夹的相对路径 39 /// </summary> 40 /// <param name="FilePth"></param> 41 /// <param name="FileName"></param> 42 /// <returns></returns> 43 public static string GetFilePath(string FilePth, string FileName = null) 44 { 45 string strPath = ""; 46 strPath = FileWithFilePath(FilePth, FileName); 47 strPath = HttpContext.Current.Request.MapPath(strPath); 48 return strPath; 49 } 50 #endregion 51 } 52 #endregion
View Code
以上方法可以实现了单个word文档带图片的导出功能了,多个文档的生成也可以实现,只是还没有打包下载的代码。
最后调用的方法如下,要先判断模板是否存在:
1 string strpath = "Content/templates"; //模板所在的文件文件夹 2 string templateFile = "实习生学习记录表导出模板.doc"; 3 if (WordFilePath.ExistFile(strpath, templateFile)) 4 { 5 string saveName = WordHelper.SaveDocName(form["NTName"], form["CardNo"]); //保存的名称 6 saveName = HttpUtility.UrlEncode(saveName, Encoding.GetEncoding("utf-8")); 7 WordHelper wordhelper = new WordHelper(templateFile); 8 getWordInfo(wordhelper, templateFile, NTID, stype.ToString(), majorid.ToString(), sequence.ToString()); 9 return base.File(wordhelper.ExportDoc().ToArray(), "application/msword", saveName); 10 } 11 else 12 { 13 return ShowRedirectMessage("导出的模板不存在!", strUrl); 14 }
View Code
getWordInfo方法是为将所需的信息拼凑成一个word文档,减少代码的重复性而提取出来的,如:
1 #region 将所有信息拼凑成一个word文档 2 public void getWordInfo(WordHelper wordhelper, string tempFile, string ntid, string stype, string mid, string sequence) 3 { 4 if (tempFile.Contains("实习生学习记录表导出模板")) 5 { 6 Dictionary<string, string> dicWhere = new Dictionary<string, string>(); 7 dicWhere.Add("NTID", ntid); 8 wordhelper.GetBasicInfo(typeof(BLL.NewTraineeInfo), dicWhere); 9 PrejobTrainWord(wordhelper, ntid); 10 TrainListWord(wordhelper, ntid, stype, mid); 11 AwardListWord(wordhelper, ntid, stype, mid); 12 ArrangeListWord(wordhelper, ntid, stype); 13 ScoreListWord(wordhelper, ntid, stype, mid, sequence); 14 EvalWord(wordhelper, ntid, stype, mid); 15 } 16 } 17 18 #region 其他信息 19 //岗前培训 20 public void PrejobTrainWord(WordHelper wordhelper, string ntid) 21 { 22 Dictionary<string, string> dicWhere = new Dictionary<string, string>(); 23 dicWhere.Add("NTID", ntid); 24 wordhelper.GetBasicInfo(typeof(BLL.PrejobTraining), dicWhere); 25 } 26 27 //轮科安排表 28 public void ArrangeListWord(WordHelper wordhelper, string ntid, string stype) 29 { 30 Dictionary<string, string> dicWhere = new Dictionary<string, string>(); 31 dicWhere = new Dictionary<string, string>(); 32 dicWhere.Add("NTID", ntid); 33 dicWhere.Add("StudentType", stype.ToString()); 34 wordhelper.GetTableList(typeof(BLL.MajorCycle), dicWhere, "ArrangeList"); 35 }
View Code
getWordInfo里其它的方法类似这两个。
最后导出的word文档大致如下图所示:
转载于:https://www.cnblogs.com/jingshuisihan/p/4604294.html
C# 导出word文档及批量导出word文档(3)相关推荐
- word(2010)宏使用-批量提取word数据
word 2010 宏的使用 Word中对宏的定义 Word宏的优缺点 Word宏运用实例---批量提取word数据 结语 Word中对宏的定义 Microsoft Word中对宏定义为:" ...
- C# 导出word文档及批量导出word文档(2)
aspose.word主要是通过把读取出来的数据放到datatable里,在datable里做相应的格式的调整,再导出到word文档里.mvc和webform最后导出的语句略有不同,在mvc的cont ...
- 根据 Excel 数据表的内容和 Word 模板文件,批量生成 Word 文档
概要:想必大家都遇到过批量生成 Word 文件的场景.我们这里有一个 Excel 数据表,那么如何根据这个数据表批量地生成 Word 文件呢?有一种方法就是我们常见的邮件合并,但是邮件合并的操作步骤太 ...
- php批量导出pdf文件大小,php完美导出pdf,pdf合并批量导出
使用到的工具 pdftk https://www.pdflabs.com/tools/pdftk-the-pdf-toolkit/ pdf合并工具 wkhtmltopdf ...
- cdrx8如何批量导出jpg_SU基础教程——如何批量导出效果图
"欢迎关注的我的头条号,私信"福利+头条",可免费获得景观资料大礼包 Sketchup导出二维图形的操作相信很多同学都已经不陌生.调整好角度和阴影,然后点击文件-导出-二 ...
- python做的游戏可以导出吗_Python for RenderDoc批量导出模型和贴图
故事背景: 美术那里有需求,需要别人游戏的模型,来借鉴一下,问我是否有工具可以一键导出模型.我就搜索了一下RenderDoc批量导出图片,结果搜到了用C++改RenderDoc源码的文章.让Rende ...
- Spine导出设置和Bat一键批量导出
目前做的游戏,里面有几百个技能,如果都放一个文件里,一个是SPINE那边不好做,太大了,还有一个U3D这边会非常消耗内存,创建的时候慢,内存占用也特别大,想了下最好的处理办法,是一个技能一个SPINE ...
- Revit如何将明细表导出为DWG格式【批量导出图纸】
一.Revit中怎样将明细表导出到DWG文件中 有时需要将Revit中生成的各种明细表导入到CAD中使用,但是在明细表视图中并没有导出成DWG格式的选项如图1所示,应该如何操作才能导出成CAD可识别文 ...
- python中读取word信息_Python实现批量读取word中表格信息的方法
本文实例讲述了Python实现批量读取word中表格信息的方法.分享给大家供大家参考.具体如下: 单位收集了很多word格式的调查表,领导需要收集表单里的信息,我就把所有调查表放一个文件里,写了个py ...
最新文章
- Java super关键字
- c++ 重载 覆盖 隐藏的区别和执行方式
- vue如何取消下拉框按回车自动下拉_按逗号拆分Excel单元格,再分离中文数字,春节压岁钱统计就用它...
- Linux 线程安全常用的锁机制
- html语言 搜索引擎关键词 怎么写,HTML关键词
- Java面试知识点(六十五)Java注解(下)——实战篇
- Kotlin 元编程(注解,反射)
- 在EXCEL中通过VBA实现批量读取文件夹内的文件名称
- Codeforces 85D Sum of Medians(线段树)
- IP地址分配和IP地址的划分
- Java编程思想+Effective Java+Java核心技术+Java核心技术 卷II+Java语言程序设计(中文+英文+源码)
- Osg使用osgQt与Qt结合使用(附项目)(1)
- 学计算机做人需要有什么基础,计算机专业学生装逼入门(文/郭策)
- npm-install 命令报错4048的几种情况和解决方法
- cf登录游戏只显示服务器的字体,cf辅助灭天大神修复文件字体花样请求解决方法...
- 安装hadoop1.2集群环境
- 集美大学计算机网络试题2018,集美大学计算机网络基础选择题.doc
- 蚂蚁森林用户须知_关于蚂蚁森林的一些思考。
- 死磕原理!新鲜出炉的蚂蚁金服面经
- 微信运营神器【运营小秘】封测邀请!
热门文章
- lua jit java jit_Lua JIT 2.0 发布了,一百五十倍的性能提升!
- linux重新安装xrog文件,Linux下重新生成xorg.conf
- django项目如何连接前端_工作笔记前端小白如何搭建前端项目
- java局部变量简述
- oracle03206,ORACLE数据库创建表空间ORA-03206报错的解决方案
- axios获取图片显示_Vue.js+axios图片预览以及上传显示进度
- python在线作业_南开大学20春学期《Python编程基础》在线作业参考答案
- 在linux实现公平队列,多级反馈队列调度策略在Linux中的应用和实现.pdf
- C语言(CED)递归实现汉诺塔问题
- CSS中div覆盖另一个div