使用ASP.NET生成Word文档并直接下载
2010-06-08 11:45
585 查看
有以下思路步骤1: 在本例中,用到的是MS的word组件(Microsoft.Office.Interop.Word.dll),所以先在项目里面添加引用, 在CreateWord.cs文件里面添加:
然后在按钮事件里面添加如下代码:
步骤2: 因为一个浏览器只能下载一个文件.因此,你们以在后台把这个文件夹压缩成RAR的形式,现在下载.或者用另外一个方法.JS配合服务端
结合两思路:可实现使ASP.NET 客户端用户同时下载多个文件
using System.Reflection; using Microsoft.Office.Interop.Word;
然后在按钮事件里面添加如下代码:
ApplicationClass wordApp = new ApplicationClass(); object missing = System.Reflection.Missing.Value; object tempName = @"d:Temp.dot"; // 模板名称,本例中的模板如后面的图 object docName = @"D:WebSitea.doc"; // 生成的word文件,可以不放在web目录下 // 生成新文档,这里使用了上面提到的模板,如果不想使用指定的模板,可使用missing,这是会使用默认的模板。关于生成word文件的几个方法,参阅MSDN Document MyDoc = wordApp.Documents.Add(ref tempName, ref missing, ref missing, ref missing); wordApp.Visible = true; MyDoc.Activate(); wordApp.Selection.Font.Size = 30; // 字体大小 wordApp.Selection.ParagraphFormat.Alignment = WdParagraphAlignment.wdAlignParagraphCenter; // 居中 wordApp.Selection.Font.Bold = (int)WdConstants.wdToggle; // 黑体 wordApp.Selection.TypeText("hello"); // 文字内容,这里我没有从数据库里面读取,只是测试了一下写入的内容 // 保存word文档 MyDoc.SaveAs(ref docName, ref missing, ref missing, ref missing, ref missing, ref missing, ref missing, ref missing, ref missing, ref missing, ref missing, ref missing, ref missing, ref missing, ref missing, ref missing); // 关闭,释放 MyDoc.Close(ref missing, ref missing, ref missing); wordApp.Quit(ref missing, ref missing, ref missing); MyDoc = null; wordApp = null; Response.Redirect("DownloadWord.aspx?id=" + "a.doc"); 下载页面的代码(DownloadWord.aspx.CS): string FullFileName = Request.QueryString["id"]; FileInfo DownloadFile = new FileInfo(HostingEnvironment.ApplicationPhysicalPath + FullFileName); // 需要转换为绝对路径,否则会自动认到C盘系统里那个IIS目录下面去,而且,无法通过URI的方式来进行数据流读取。如果你生成的文件不在web目录下,也需要明确指出。 // 下面到就是读取文件,通过数据流的方式下载了。 Response.Clear(); Response.ClearHeaders(); Response.Buffer = false; Response.ContentType = "application/octet-stream"; Response.AppendHeader("Content-Disposition", "attachment;filename=" + HttpUtility.UrlEncode(FullFileName, System.Text.Encoding.UTF8)); Response.AppendHeader("Content-Length", DownloadFile.Length.ToString()); Response.WriteFile(DownloadFile.FullName); Response.Flush(); Response.End();
步骤2: 因为一个浏览器只能下载一个文件.因此,你们以在后台把这个文件夹压缩成RAR的形式,现在下载.或者用另外一个方法.JS配合服务端
<script language=javascript> function downFiles(arrFileName) { for(var i = 0;i <arrFileName.length;i++) { window.open( "downFile.aspx?fileName= " + arrFileName[i]; } } var arr = " <%=fileNames%> .split( ": "); downFiles(arr); //CS public string fileNames { get { return "1.txt:2.txt:3.txt "; } }
结合两思路:可实现使ASP.NET 客户端用户同时下载多个文件
相关文章推荐
- 使用Asp.Net生成Word文档并直接下载
- 使用Asp.Net生成Word文档并直接下载(转)
- 使用VS.NET生成word文档并直接下载
- 使用VS.NET生成word文档并直接下载
- 使用VS.NET生成word文档并直接下载
- 使用VS.NET生成word文档并直接下载
- Asp.net或C#使用word模板生成替换后的Word和pdf文档-总结
- 推荐.NET使用Aspose.Words动态生成word文档数据表格(附Aspose.Words for NET 6.5 破解版下载)
- ASP.NET MVC 5使用Swagger生成API文档
- asp.net下用Aspose.Words for .NET动态生成word文档中的数据表格的方法
- asp.net下用Aspose.Words for .NET动态生成word文档中的图片或水印的方法
- ASP.NET Core 1.0 中使用 Swagger 生成文档
- C# ASP.NET 走火入魔通用权限管理系统组件V3.2试用版下载地址【含数据库设计文档、使用手册】
- 在asp.net中无需服务器安装word,利用xml生成word文档
- Asp.net生成Excel文件并下载(解决使用迅雷下载页面而不是文件的问题)
- ASP.NET生成WORD文档,服务器部署注意事项
- ASP.NET MVC 拓展ViewResult实现word文档下载
- ASP.NET生成WORD文档服务器部署注意事项
- asp.net core使用Swashbuckle.AspNetCore(swagger)生成接口文档
- asp.net 填充word 模版标签并下载使用笔记