<%@ Page Language="C#" AutoEventWireup="true" CodeFile="Default6.aspx.cs" Inherits="Default6" %>

 <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">

 <html xmlns="http://www.w3.org/1999/xhtml">
<head runat="server">
<title></title>
</head>
<body>
<form id="form1" runat="server"> <asp:GridView ID="GridView1" runat="server" AutoGenerateColumns="False"
Width="367px" CellPadding="4">
<Columns>
<asp:TemplateField HeaderText="编号">
<ItemTemplate>
<asp:Label ID="Label1" runat="server" Text='<%# Eval("id") %>'></asp:Label>
</ItemTemplate>
</asp:TemplateField>
<asp:TemplateField HeaderText="标题">
<ItemTemplate>
<asp:Label ID="Label2" runat="server" Text='<%# Eval("title") %>'></asp:Label>
</ItemTemplate>
</asp:TemplateField>
<asp:TemplateField HeaderText="内容">
<ItemTemplate>
<asp:Label ID="Label3" runat="server" Text='<%# Eval("content") %>'></asp:Label>
</ItemTemplate>
</asp:TemplateField>
<asp:TemplateField HeaderText="创建时间">
<ItemTemplate>
<asp:Label ID="Label4" runat="server" Text='<%# Eval("createTime") %>'></asp:Label>
</ItemTemplate>
</asp:TemplateField>
<asp:TemplateField HeaderText="类别编号">
<ItemTemplate>
<asp:Label ID="Label5" runat="server" Text='<%# Eval("caId") %>'></asp:Label>
</ItemTemplate>
</asp:TemplateField>
</Columns>
</asp:GridView>
<br />
<br />
<asp:Button ID="Button1" runat="server" Text="导出Excel" Width="109px"
onclick="Button1_Click" />
&nbsp;&nbsp;&nbsp;&nbsp;
<asp:Button ID="Button2" runat="server" Text="导出Word" Width="86px"
onclick="Button2_Click" /> </form>
</body>
</html>

使用Gridview绑定数据库,绑定数据源。

后台:

首先引用命名空间

using System.Configuration;
using System.Data;
using System.Data.SqlClient;
using System.IO;
using System.Text;

static string ConStr = ConfigurationManager.AppSettings["Constr"];
SqlConnection conn = new SqlConnection(ConStr);
protected void Page_Load(object sender, EventArgs e)
{
BindNews();
}
// Page.VerifyRenderingInServerForm 方法 就是验证服务器控件是否需要在<form runat=server></form>的标记之中,如果不在这个标记之中,将会引发下面的异常
//如果该页当前不处于页处理中的呈现阶段,且位于 <form runat=server> 标记内,则该方法将引发异常。需要位于服务器窗体内的控件可以在呈现期间调用该方法,以便在它们被放置到外面时显示明确的错误信息。发送回或依赖于注册的脚本块的控件应该在 Control.Render 方法的重写中调用该方法。呈现服务器窗体元素的方式不同的页可以重写该方法以在不同的条件下引发异常
//就必须重载VerifyRenderingInServerForm方法
public override void VerifyRenderingInServerForm(Control control)
{ }
void BindNews()
{
string sqlstr="select * from news";
SqlDataAdapter sda = new SqlDataAdapter(sqlstr, conn);
DataSet ds = new DataSet();
sda.Fill(ds);
if (ds.Tables[].Rows.Count > )
{ GridView1.DataSource = ds;
GridView1.DataBind();
} }
/// <summary>
/// 导出Excel(以流的方式进行编写所要得到的内容)
/// </summary>
/// <param name="sender"></param>
/// <param name="e"></param>
protected void Button1_Click(object sender, EventArgs e)
{
//文档名称
string myfilename = "LLF" + DateTime.Now.ToString("yyyy-mm-dd-hh-mm-ss"); //申明一个hc 的类
HttpContext hc = HttpContext.Current;
//清空缓存
hc.Response.Clear();
//开启缓存
hc.Response.Buffer = true;
//设置编码格式(获取或设置输出流的字符集)Encoding(表示字符的编码)
hc.Response.ContentEncoding = Encoding.Default;
//设置头文件((AddHeader)将http的标头添加到输出流)
hc.Response.AddHeader("Content-Disposition", "attachment;filename=" + HttpUtility.UrlEncode(myfilename, Encoding.Default) + ".xls");
//导出为Excel文件类型
hc.Response.ContentType = "application/ms-excel"; //申明文件写入流
StringWriter sw = new StringWriter();
//将服务器控件内的信息转义成HTML文件格式内容并存入到文件写入流
HtmlTextWriter htw = new HtmlTextWriter(sw);
//将数据库内的信息显示到GridView1上,同时在将将服务器控件内的信息转义成HTML文件格式
this.GridView1.RenderControl(htw);
//将文件写入流的信息输出到excel中
hc.Response.Write(sw.ToString());
//结束
hc.Response.End();
}
/// <summary>
/// 导出word
/// </summary>
/// <param name="sender"></param>
/// <param name="e"></param>
protected void Button2_Click(object sender, EventArgs e)
{
//文档名称
string myfilename = "fahui" + DateTime.Now.ToString("yyyyMMdd_hhmmss");
//申明一个hc的类
HttpContext hc = HttpContext.Current;
//清空缓存
hc.Response.Clear();
//开启缓存
hc.Response.Buffer = true;
//设置编码格式
hc.Response.ContentEncoding = Encoding.Default;
//设置头文件
hc.Response.AddHeader("Content-Disposition", "attachment;filename=" + HttpUtility.UrlEncode(myfilename, Encoding.Default) + ".doc");
//导出为Excel文件类型
hc.Response.ContentType = "application/ms-word"; //申明文件写入流
StringWriter sw = new StringWriter();
//将服务器控件内的信息转义成HTML文件格式内容并存入到文件写入流
HtmlTextWriter htw = new HtmlTextWriter(sw);
//将数据库内的信息显示到GridView1上,同时在将将服务器控件内的信息转义成HTML文件格式
this.GridView1.RenderControl(htw);
//将文件写入流的信息输出到excel中
hc.Response.Write(sw.ToString());
//结束
hc.Response.End(); }

导出Excel And 导出word的更多相关文章

  1. 使用Apache POI导出Excel小结--导出XLS格式文档

    使用Apache POI导出Excel小结 关于使用Apache POI导出Excel我大概会分三篇文章去写 使用Apache POI导出Excel小结--导出XLS格式文档 使用Apache POI ...

  2. NPOI控件的使用导出excel文件和word文件

    public HttpResponseMessage GetReportRateOutput(DateTime? begin_time = null, DateTime? end_time = nul ...

  3. java导出Excel定义导出模板

    在很多系统功能中都会有Excel导入导出功能,小编采用JXLS工具,简单.灵活. JXLS是基于 Jakarta POI API 的Excel报表生成工具,它采用标签的方式,类似于jsp页面的EL表达 ...

  4. 导出Excel(导出一个模版)

    有时,客户需要一个标准的模板来填东西,然后在导入 这时可以弄好excel模板,供导出 /** * 导出excel模板文件 * @param request * @param response * @r ...

  5. C#导出EXCEL(DataTable导出EXCEL)

    using System; using System.Collections.Generic; using System.Text; using System.Data; using System.I ...

  6. Vue框架下实现导入导出Excel、导出PDF

    项目需求:开发一套基于Vue框架的工程档案管理系统,用于工程项目资料的填写.编辑和归档,经调研需支持如下功能: Excel报表的导入.导出 PDF文件的导出 打印表格 经过技术选型,项目组一致决定通过 ...

  7. 利用GridView控件导出其他文件(导出Excel,导出Word文件)

    原文发布时间为:2008-10-16 -- 来源于本人的百度文章 [由搬家工具导入] // 注意,在Visual Studio2005平台下,如果使用GridView导出文件,      //就必须重 ...

  8. Spring Boot 系列教程12-EasyPoi导出Excel下载

    Java操作excel框架 Java Excel俗称jxl,可以读取Excel文件的内容.创建新的Excel文件.更新已经存在的Excel文件,现在基本没有更新了 http://jxl.sourcef ...

  9. spring boot + easypoi两行代码excel导入导出

    easypoi封装了poi让我们能够非常简单的实现Excel导出,Excel模板导出,Excel导入,Word模板导出等,具体可见官网:http://www.afterturn.cn/. 我这边实现了 ...

随机推荐

  1. 2016-2017 ACM-ICPC, NEERC, Northern Subregional Contest

    A. Anniversary Cake 随便挑两个点切掉就好了. #include<bits/stdc++.h> using namespace std; const int Maxn=2 ...

  2. Android入门(四):链接接口组件和程序代码

    编写好layout中的接口组件之后,下一步就是编写控制接口组件的程序代码.上一章,我们使用了三种接口组件,在使用者输入性别和年龄之后点击“健康建议按钮”,程序会读取用户所填入的性别和年龄,然后显示判断 ...

  3. log4php的配置

    网上关于log4php配置的文章很多,下面是我的配置,跟网上部分略有不同 (1)添加日志     1.下载log4php,到官网就可以下载到,下载后解压     我的版本是log4php_2.3.0 ...

  4. SQL Server 存储过程

    Transact-SQL中的存储过程,非常类似于Java语言中的方法,它可以重复调用.当存储过程执行一次后,可以将语句缓存中,这样下次执行的时候直接使用缓存中的语句.这样就可以提高存储过程的性能. Ø ...

  5. 随鼠标轮动翻动层————jquery小练习

    闲来无事在网站上看见一个网页制作的不错,就仿照做来看看.特此记录下来. 亮点:随鼠标上下滚动,展示页面随之不同,翻动效果. 功能点:鼠标向上,向下判断事件. css 代码 html { overflo ...

  6. php正则获取html图片标签信息(采集图片)

    php获取html图片标签信息(采集图片),实现图片采集及其他功能,带代码如下: <?php $str="<img src='./a.jpg'/>111111<img ...

  7. 利用jquery发送form表单

    $("#rap_save_draft").click(function(){ rap_start_editor.sync();//同步KindEditor的内容 // 取得要提交的 ...

  8. bzoj1717: [Usaco2006 Dec]Milk Patterns 产奶的模式(后缀数组+二分)

    /* 求可重叠的至少重复K次的最长字串 以1为下标起点,因为a[i]最大到1000000,所以要先离散一下 二分长度len 然后O(n)检验 后看h[i]是否有连续的一段h[i]大于len的,并且h[ ...

  9. python单元测试unittest

    单元测试作为任何语言的开发者都应该是必要的,因为时隔数月后再回来调试自己的复杂程序时,其实也是很崩溃的事情.虽然会很快熟悉内容,但是修改和 调试将是一件痛苦的事情,如果你在修改了代码后出现问题的话,而 ...

  10. C++STL -- vector实现

    STL的vector简化实现 本质 vector说到底就是一个动态数组,我们需要做的就是管理动态数组的内存,和元素的增加,删除,移动等. template <typename T> cla ...