项目需要导出数据到word中,因为要导出的是表格形式,所以先在word中绘制好了表格,然后按照以前的代码改了改,发现不行。出现的问题如下:
这是当时的代码,问题的症结所在就是Response上。这段代码以前是写在asp中的。在asp.net中,Response使用的是HttpResponse,但是该项目为Mvc,Mvc中为HttpResponseBase,二者不能兼容,不能强制转换。问题一直无法得到解决。
所以就改变了代码:如下。
public ActionResult WordExport(TrainingTheoryForSignatureDetailModel aModel)
{ string tmppath = Server.MapPath("~/学员报名信息表.docx"); Document doc = new Document(tmppath); //载入模板 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); return File(docStream.ToArray(), "application/msword", "Template.doc"); }这样问题就迎刃而解。
但是因为事先在word中绘制好了表格,所以就对需要插入数据的地方添加书签,在代码中获取书签的名字,从而对书签的文本进行操作。