首页 > 代码库 > 数据导出excel和word文件
数据导出excel和word文件
程序中可以将一些信息导出,以便用户下载使用,这里将简单的做一下导出表格,用car表做例子,直接用Linq连接到数据库
car表:
方法一:
创建一个页面,放上一个按钮,在按钮中写事件,按钮id就叫做button1
using System;using System.Collections.Generic;using System.Linq;using System.Web;using System.Web.UI;using System.Web.UI.WebControls;using System.Text;//注意引用命名空间using System.IO;//注意引用命名空间public partial class Default1 : System.Web.UI.Page{ DataClassesDataContext con = new DataClassesDataContext(); protected void Page_Load(object sender, EventArgs e) { Button1.Click += Button1_Click; } void Button1_Click(object sender, EventArgs e) { //1、要导出哪些数据,需要一个泛型集合 List<car> list = con.car.ToList(); //2、拼接成table表格的格式 StringBuilder str = new StringBuilder();//StringBuilder str.Append("<table border=‘1‘>"); foreach (car c in list)//遍历这个集合,将每一条数据拼成一行,循环组成表格 { str.Append("<tr>"); str.Append("<td>" + c.ids + "</td>"); str.Append("<td>" + c.code + "</td>"); str.Append("<td>" + c.name + "</td>"); str.Append("<td>" + c.brand + "</td>"); str.Append("<td>" + c.time + "</td>"); str.Append("<td>" + c.oil + "</td>"); str.Append("<td>" + c.powers + "</td>"); str.Append("<td>" + c.exhaust + "</td>"); str.Append("<td>" + c.price + "</td>"); str.Append("<td>" + c.pic + "</td>"); str.Append("</tr>"); } str.Append("</table>"); //3、导出到服务器指定路径 //为了每次导出名字不冲突,可以拼接上当前的日期时间,这里导出的是Excel表格,后缀名为xlsx string path = Server.MapPath("File/" + DateTime.Now.ToString("yyyyMMdd") + "car.xlsx"); StreamWriter wr = new StreamWriter(path);//开启流指向绝对路径 wr.Write(str);//将表格通过流通道写到指定位置 wr.Close();//*********************************注意关闭流 //4、给用户下载 Response.Redirect("File/" + DateTime.Now.ToString("yyyyMMdd") + "car.xlsx"); }}
方法二:
创建一个页面,放上一个按钮,在按钮中写事件,按钮id就叫做button2,创建一个一般处理程序,点击按钮直接指向这个一般处理程序,在里面写,点击按钮不需要导出,直接下载(这个方法不怎么好用)
后台代码:直接在按钮事件中指向一般处理程序
using System;using System.Collections.Generic;using System.Linq;using System.Web;using System.Web.UI;using System.Web.UI.WebControls;using System.Text;//注意引用命名空间using System.IO;//注意引用命名空间public partial class Default1 : System.Web.UI.Page{ DataClassesDataContext con = new DataClassesDataContext(); protected void Page_Load(object sender, EventArgs e) { Button2.Click += Button2_Click; } void Button2_Click(object sender, EventArgs e) { Response.Redirect("aaaa.ashx");//指向一般处理程序 }}复制代码
一般处理程序
<%@ WebHandler Language="C#" Class="aaaa" %>using System;using System.Web;using System.Linq;using System.Data.Linq;using System.Collections;using System.Collections.Generic;using System.Text;public class aaaa : IHttpHandler { DataClassesDataContext con = new DataClassesDataContext(); public void ProcessRequest (HttpContext context) { context.Response.ContentType = "appliction/vnd.ms-excel"; //context.Response.ContentType = "appliction/msword"; List<car> list = con.car.ToList(); StringBuilder str = new StringBuilder(); str.Append("<table border=‘1‘>"); foreach (car c in list) { str.Append("<tr>"); str.Append("<td>" + c.ids + "</td>"); str.Append("<td>" + c.code + "</td>"); str.Append("<td>" + c.name + "</td>"); str.Append("<td>" + c.brand + "</td>"); str.Append("<td>" + c.time + "</td>"); str.Append("<td>" + c.oil + "</td>"); str.Append("<td>" + c.powers + "</td>"); str.Append("<td>" + c.exhaust + "</td>"); str.Append("<td>" + c.price + "</td>"); str.Append("<td>" + c.pic + "</td>"); str.Append("</tr>"); } str.Append("</table>"); context.Response.Write(str); context.Response.End(); } public bool IsReusable { get { return false; } }}
数据导出excel和word文件
声明:以上内容来自用户投稿及互联网公开渠道收集整理发布,本网站不拥有所有权,未作人工编辑处理,也不承担相关法律责任,若内容有误或涉及侵权可进行投诉: 投诉/举报 工作人员会在5个工作日内联系你,一经查实,本站将立刻删除涉嫌侵权内容。