今天研究一天的导出word,一开始准备选用为软件自带的office,但是有局限性,机子上必须安装office才能使用,最后在网上搜了一下资料aspose开源的

小公司没得钱,你懂得。最后选择了这款 开源地址:http://www.oschina.net/p/aspose-words/similar_projects?lang=25&sort=time

在网上找了一个例子是webform的,而现在使用的是mvc来开发,解决这个aspose在mvc中如何使用费劲了功夫。下面我写一下项目中如何使用到的。

项目需要导出数据到word中,因为要导出的是表格形式,所以先在word中绘制好了表格,然后按照以前的代码改了改,发现不行。出现的问题如下:

这是当时的代码,问题的症结所在就是Response上。这段代码以前是写在asp.NET中的。在asp.Net中,Response使用的是HttpResponse,但是该项目为Mvc架构,Mvc中为HttpResponseBase,二者不能兼容,不能强制转换。问题一直无法得到解决。

所以就改变了代码:如下。


         public ActionResult Index()
{
string tmppath = Server.MapPath("~/2.doc");
Document doc = new Document(tmppath); //载入模板 Dictionary<string, string> dictionnary = new Dictionary<string, string>();
dictionnary.Add("姓名", "杨幂");
dictionnary.Add("学历", "本科");
dictionnary.Add("联系方式", "");
dictionnary.Add("邮箱", "123213@qq.com");
dictionnary.Add("内容", "上去就是干"); foreach (var item in dictionnary)
{
var key = string.Format("&{0}&", item.Key); //doc.Range.Replace() doc.Range.Replace(key, item.Value, new FindReplaceOptions())
// doc.MailMerge.Execute(key, item.Value,false,false); //此函数已被标记弃用
}
//if (doc.Range.Bookmarks["Name"] != null)
//{
// Bookmark mark = doc.Range.Bookmarks["name"];
// mark.Text = aModel.Name;
//} var docStream = new MemoryStream();
doc.Save(docStream, SaveFormat.Doc);
//doc.Save(docStream, SaveOptions.CreateSaveOptions(SaveFormat.Doc));
return File(docStream.ToArray(), "application/msword", "Template.doc");
}

这样问题就迎刃而解,导出在word绘制好表格,对需要插入的数据的地方标记,后台直接插入代码即可,还有一种方式是针对书签但是一般不推荐,太麻烦

以下是案例方式截图

例如:&姓名&-周杰伦 此格式去替换,可由自己定义规则

C# Aspose word 替换指定键值数据的更多相关文章

  1. NodeMCU使用ArduinoJson判断指定键值对存在与否

    NodeMCU使用ArduinoJson判断指定键值对存在与否 从ArduinoJson库中可以得知,判断键值对是否存在可以使用containskey()函数,但是查看ArduinoJson-cont ...

  2. c# 键值数据保存XML文件

    /// <summary> /// 键值数据保存XML文件 /// </summary> /// <param name="fileName"> ...

  3. 探索etcd,Zookeeper和Consul一致键值数据存储的性能

    这篇博文是探索三个分布式.一致性键值数据存储软件性能的系列文章中的第一篇:etcd.Zookeeper和Consul,由etcd团队所写,可以让我们全面地了解如何评估三个分布式一致存储软件的性能.翻译 ...

  4. c#对Aspose.Word替换书签内容的简单封装

    辅助类1  json和datatable互转:   using System; using System.Collections.Generic; using System.Linq; using S ...

  5. JavaScript获取Django模板中指定键值的数据,使用过滤器

    Django中利用js来操作数据的常规操作一般为点(.)操作符来获取字典或列表的数据,一般如{{data.0}},{{data.arg}} 但有时如果数据是嵌套类型的数据时,直接获取某个值就变得困难了 ...

  6. php对数组中指定键值排序

    function array_sort($arr,$keys,$type='asc'){ $keysvalue = $new_array = array(); foreach ($arr as $k= ...

  7. PHP 二维数组排序 可以按指定 键值排序

    <?php header("Content-Type:utf-8"); $arr = array( 0 => array( 'name' => '国际原油价格', ...

  8. windows Driver 查询指定键值

    NTSTATUS status; HANDLE hKey = NULL; OBJECT_ATTRIBUTES oa; UNICODE_STRING strPath = RTL_CONSTANT_STR ...

  9. Android - 数据存储 -存储键值对

    如果你有少量的键值数据需要存储,可以使用SharedPreferencesAPI.SharedPreferences对象指向一个包含键值对的文件并且提供了一些简单的方法来读取它们.每个SharedPr ...

随机推荐

  1. Struts2入门(二)——配置拦截器

    一.前言 之前便了解过,Struts 2的核心控制器是一个Filter过滤器,负责拦截所有的用户请求,当用户请求发送过来时,会去检测struts.xml是否存在这个action,如果存在,服务器便会自 ...

  2. HttpSession与Hibernate中Session的区别

    一.javax.servlet.http.HttpSession是一个抽象接口 它的产生:J2EE的Web程序在运行的时候,会给每一个新的访问者建立一个HttpSession,这个Session是用户 ...

  3. win10 下visual studio 2015 在调试模式下不能跟踪源文件

    win10 下visual studio 2015 在调试模式下不能跟踪源文件,只要一调试就会关闭(隐藏)打开的文档,非常不方便.经过一番折腾,发现是配置的问题. 如果安装多个版本的VS,请删除对应版 ...

  4. echarts学习总结

    ECharts学习总结使用步骤1 引入ECharts <script src="echarts.min.js"></script>2 绘制一个简单的图表 为 ...

  5. iOS之获取经纬度并通过反向地理编码获取详细地址

    _locationManager = [[CLLocationManager alloc] init]; //期望的经度 _locationManager.desiredAccuracy = kCLL ...

  6. UIDatePicker

    UIDatePickerDemo 效果 用法 1.导入文件(CustomDatePickerView.h/.m 和UIView+SetRect.h/.m) 2.在所要用到地方导入头文件  #impor ...

  7. 【搬砖】安卓入门(2)- Java开发编程基础--进制转换和运算符

    02.01_Java语言基础(常量的概述和使用)(掌握) A:什么是常量 在程序执行的过程中其值不可以发生改变 B:Java中常量的分类 字面值常量 自定义常量(面向对象部分讲) C:字面值常量的分类 ...

  8. [swift]NSURLSession

    一.简单说明 在iOS9.0之后,以前使用的NSURLConnection过期,苹果推荐使用NSURLSession来替换NSURLConnection完成网路请求相关操作. NSURLSession ...

  9. 使用Hudson进行持续集成

    小Alan最近接了一个任务,就是使用Hudson进行持续集成,持续集成是怎么个概念,3言2语也说不清,有兴趣的童鞋去找我二奶度娘问问就知道了,说到Hudson就不得不提一下jenkins,目前来说用j ...

  10. Python导入其他文件中的.py文件 即模块

    import sys sys.path.append("路径") import .py文件