数据导出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;
        }
    }

}
时间: 2024-10-24 12:32:44

数据导出excel和word文件的相关文章

将页面中表格数据导出excel格式的文件(vue)

近期由于项目需要,需要将页面中的表格数据导出excel格式的文件,折腾了许久,在网上各种百度,虽然资料不少,但是大都不全,踩了许多坑,总算是皇天不负有心人,最后圆满解决了. 1.安装相关依赖(npm安装可能会出现某些错误,可以使用cnpm): npm install file-saver --save // 保存文件用 npm install xlsx --save // 转二进制用 npm install script-loader --save-dev // xlsx核心文件 2.下载两个核

C# GridView导出excel和word文件

//导出excel按钮事件 protected void Button1_Click(object sender, EventArgs e) { Export("application/ms-excel", "农田环境数据.xls"); } //导出word按钮事件 protected void Button2_Click(object sender, EventArgs e) { Export("application/ms-excel", &

Java使用POI实现数据导出excel报表

在上篇文章中,我们简单介绍了java读取word,excel和pdf文档内容 ,但在实际开发中,我们用到最多的是把数据库中数据导出excel报表形式.不仅仅简单的读取office中的数据.尤其是在生产管理或者财务系统中用的非常普遍,因为这些系统经常要做一些报表打印的工作.而数据导出的格式一般是EXCEL或者PDF .所以今天我们来简单看一下利用Apache  POI实现数据库中数据导出excel报表.在java中有很多实现数据导出excel报表的第三方jar包.但在比较了一下感觉还是POI相对来

框架 day50 BOS项目 4 批量导入(ocupload插件,pinyin4J)/POI解析Excel/Combobox下拉框/分区组合条件分页查询(ajax)/分区数据导出(Excel)

知识点: 批量导入(ocupload插件,pinyin4J /POI解析Excel(apache POI) /区域分页查询 /Combobox下拉框 /分区组合条件分页查询(ajax) /分区数据导出(Excel下载) BOS项目笔记第4天 1.    区域批量导入功能 *Ajax不支持文件上传. *上传并且不刷新上传页面原理: Target到一个0,0,0的隐藏iframe里,造成一个没有刷新的假象 <form target="myIframe" action="ab

npoi实现数据导出Excel

npoi .NET第三方的Office功能组件. 链接地址 http://npoi.codeplex.com/ 引用命名空间 using NPOI.HSSF.UserModel; using NPOI.HPSF; using NPOI.POIFS.FileSystem; using NPOI.SS.UserModel; 功能代码 /// <summary> /// 操作EXCEL导出数据报表的类 /// </summary> public class DataToExcel { /

大量数据导出excel(csv)的实现

<?php /** * 大量数据导出excel(csv)的实现. * Created by PhpStorm. * User: Huming * Date: 2017-04-16 * Time: 14:04 * */ //使用MS sqlserver数据测试的 require_once 'MSSqlServerHelper.php'; $sqlHelper = new MSSqlServerHelper(); set_time_limit(0); ini_set('memory_limit',

.net解决数据导出excel时的格式问题

在项目中一般都需要将报表数据导出到EXCEL中,但经常出现导出长串数据(如身份证)到EXCEL中后显示为科学计数法的格式,或者报表中显示为001的数据导出到Excel后成了1的格式. 下面简单介绍一下以上问题的解决方法: 1.首先,了解一下excel从web页面上导出的原理.当我们把这些数据发送到客户端时,我们想让客户端程序(浏览器)以excel的格式读 取它,所以把mime类型设为:application/vnd.ms-excel,当excel读取文件时会以每个cell的格式呈现数据,如果 c

百度地图里面搜索到的公司商家电话导出表格?怎样将把百度地图里面搜索到的公司 电话 地址 等数据导出excel里?

好多人在问:如何将百度地图里面搜索到的公司商家电话导出表格?怎样将把百度地图里面搜索到的公司 电话 地址 等数据导出excel里? 现在,很多人都在网络上找商家,联系业务. 百度地图里有很多的商家联系方式地址等数据,这便成为很多人的便捷方式.但是一个个地复制出来商家的电话,地址是一件很痛苦的事情, 于是想到开发一个程序,模拟人的操作,将所有的数据提取保存到EXCEL里. 交流学习QQ:3125547039 主要代码思路: m_objConnection.Open();             b

vc中判断excel、word文件是否存在,删除excel文件

vc中判断excel文件是否存在,删除excel文件可以使用PathFileExists_和DeleteFile函数 但是,由于03以后excel的后缀改为.xlsx.所以,使用时需加后缀.xlsx. 如:PathFileExists(“C:\Users\tony-wt\Desktop\MyProject\11.xlsx”) vc中判断excel.word文件是否存在,删除excel文件