关键是EXCEL单元格换行,折腾了好久,终于出来了,呵呵,做个记录

.cs源代码

代码

using System;
using System.Collections.Generic;
using System.Linq;
using System.Web;
using System.Web.UI;
using System.Web.UI.WebControls;

namespace ExportExcel
{
    public partial class _Default : System.Web.UI.Page
    {
        protected void Page_Load(object sender, EventArgs e)
        {
            if (!IsPostBack)
            {
                this.GridView1.DataSource = CreateDataSource();
                this.GridView1.DataBind();
            }
        }

public override void VerifyRenderingInServerForm(Control control)
        { }

protected void Button1_Click(object sender, EventArgs e)
        {
            //设置文件名
            string fileName = DateTime.Now.ToString("yyyyMMddHHmmss");

//HTTP请求内容
            System.Web.HttpContext curContext = System.Web.HttpContext.Current;

// 输出文件流
            System.IO.StringWriter strWriter = null;

//服务端控件输出流
            System.Web.UI.HtmlTextWriter htmlWriter = null;

// 清空当前 Response
            HttpContext.Current.Response.Clear();

//设置缓冲方式输出
            HttpContext.Current.Response.Buffer = true;

//添加HTTP标头到输出流
            HttpContext.Current.Response.AddHeader("content-disposition", string.Format("attachment; filename={0}.xls", fileName));
            curContext.Response.ContentType = "application/vnd.ms-excel"; //设置输出文件类型为xls文件

/**如果要输出doc文件,请用下面这段代码**/
            //HttpContext.Current.Response.AddHeader("content-disposition", string.Format("attachment; filename={0}.doc", fileName));
            //curContext.Response.ContentType = "application/ms-word"; //设置输出文件类型为word文件

//设置编码方式
            curContext.Response.ContentEncoding = System.Text.Encoding.GetEncoding("GB2312");
            curContext.Response.Charset = "";

// 导出文件 
            strWriter = new System.IO.StringWriter();
            htmlWriter = new System.Web.UI.HtmlTextWriter(strWriter);

htmlWriter.Write("测试标题1");

// 返回客户端 
            GridView1.RenderControl(htmlWriter);

//设置换行  <br/>是html的换行样式替换成<br style='mso-data-placement:same-cell;'/> EXCEL换行
            curContext.Response.Write(strWriter.ToString().Replace("<br/>", "<br style='mso-data-placement:same-cell;'/> "));

curContext.Response.End();
        }

System.Data.DataView CreateDataSource()
        {
            System.Data.DataTable dt = new System.Data.DataTable();
            System.Data.DataRow dr;
            dt.Columns.Add(new System.Data.DataColumn("测试1"));
            dt.Columns.Add(new System.Data.DataColumn("测试2"));
            dt.Columns.Add(new System.Data.DataColumn("测试3"));
            dt.Columns.Add(new System.Data.DataColumn("测试4"));
            dt.Columns.Add(new System.Data.DataColumn("测试5"));
            dt.Columns.Add(new System.Data.DataColumn("测试6"));

for (int i = 0; i < 5; i++)
            {
                System.Random rd = new System.Random(Environment.TickCount * i); ;
                dr = dt.NewRow();
                dr[0] = "编号" + i.ToString();
                dr[1] = "换行测试:" + i.ToString() + "<br/>" + "第二行开始" + i.ToString() + "<br/>" + "第三行开始" + i.ToString() + "<br/>" + "第四行开始" + i.ToString() + "<br/>" + "第五行开始" + i.ToString();
                dr[2] = "测试:" + i.ToString();
                dr[3] = "测试:" + i.ToString();
                dr[4] = "测试:" + i.ToString();
                dr[5] = "测试:" + i.ToString();
                dt.Rows.Add(dr);
            }

System.Data.DataView dv = new System.Data.DataView(dt);
            return dv;
        }
    }
}

.aspx源

代码

<%@ Page Language="C#" AutoEventWireup="true" CodeBehind="Default.aspx.cs" Inherits="ExportExcel._Default" %>

<!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">
    <div>
    <asp:GridView ID="GridView1" runat="server" AutoGenerateColumns="false" >  
    <Columns>
                <asp:BoundField HtmlEncode="false" DataField="测试1" HeaderText="测试字段" />
                <asp:BoundField HtmlEncode="false" DataField="测试2" HeaderText="测试字段" />
                <asp:BoundField HtmlEncode="false" DataField="测试3" HeaderText="测试字段" />
                <asp:BoundField HtmlEncode="false" DataField="测试4" HeaderText="测试字段" />
                <asp:BoundField HtmlEncode="false" DataField="测试5" HeaderText="测试字段" />
                <asp:BoundField HtmlEncode="false" DataField="测试6" HeaderText="测试字段" />
            </Columns>         
        </asp:GridView>        
        <asp:Button ID="Button1" runat="server" onclick="Button1_Click" Text="导出" />
        <br />
    </div>
    </form>
</body>
</html>

用VS2008写的DEMO:/Files/tqlin/ExportExcel.rar

转载于:https://www.cnblogs.com/tqlin/archive/2010/09/08/1821663.html

ASP.NET通过流方式导出EXCEL并且单元格换行相关推荐

  1. 导出excel此单元格中的数字为文本格式,或者其前面有撇号

    前言: 无论大家使用的是java,js,.net等技术导出excel,都会出现下面的问题. 这篇文章只提供解决思路,以及用easyexcel导出 的处理方式,其他技术大家可以举一反三. 1.导出exc ...

  2. springboot项目导出excel 合并单元格表格

    springboot项目导出excel 合并单元格表格 导出效果 业务controller 业务数据 业务实体类 注解MyExcel.java 注解 MyExcels 导出工具类MyExcelUtil ...

  3. java-EasyExcel导出excel设置单元格为文本格式(含代码)

    java-EasyExcel导出excel设置单元格为文本格式(含代码) 在使用EasyExcel导出excel模板时.我们会发现导出的日期和大长度数字都会自动更换格式,不是文本格式.并且在空白单元格 ...

  4. POI导出Excel设置单元格背景色

    POI导出Excel设置单元格背景色 导出Excel的时候,没有设置背景色,用2003版本的Excel工具打开会出现文档单元格背景自动填充黑色的情况,没有找到好的解决方法,就主动给他填充一种颜色,问题 ...

  5. 用EasyPoi导出Excel中单元格图片(线上阿里云)

    用EasyPoi导出Excel中单元格图片(线上阿里云): 导出数据需要包含图片 问题描述 提示:这里描述项目中遇到的问题: 数据库中存储图片格式是阿里云(oss)的图片url,导出excel显示图片 ...

  6. java poi设置单元格格式为数值_java中导出excel设置单元格的样式为数字格式怎么设置_Java代码实现设置单元格格式...

    java中导出excel设置单元格的样式为数字格式怎么设置 如果是使用poi,它会自动根据参数值设置单元格为恰当格式,只需传入数字类型参数值即可,比如 double value=....; cell. ...

  7. POI导出——Excel实现单元格的背景色填充

    1.背景 随着业务需求的扩充,简简单单的Excel导出已经不能满足客户的胃口了.而POI api这个家伙里面的坑有时候真的是让你分分钟没有脾气,所以打算记录下来,分享一下poi的坑及其解决方法. 2. ...

  8. java导出excel表格设置行高,POI导出Excel设置单元格格式

    使用Apache的POI相关API导出Excel设置单元格格式 栗子,一下各个代码之间的变量是通用的,要是在某个代码块中找不到某个变量,则可以向上找寻 准备工作 InputStream = templ ...

  9. poi导出Excel合并单元格、设置打印参数页眉页脚等

    由于生成文件不能落地,使用SXSSFWorkBook来对excel的导出工作 生成excel步骤: 1.创建workbook SXSSFWorkbook workbook=new SXSSFWorkb ...

  10. C#中导出Excel的单元格属性设置

    A.单元格格式设置,默认为常规类型:Excel Excel.Range r =mySheet.get_Range(mySheet.Cells[1,1],mySheet.Cells[DT.Rows.Co ...

最新文章

  1. 深度学习网络模型可视化netron
  2. 在博客园添加Lisp(或其它)代码高亮
  3. windows下安装以及配置nginx
  4. httpClient3.1 笔记
  5. 让你的插件兼容AMD, CMD ,CommonJS和 原生 JS
  6. VTK:Utilities之3DArray
  7. CentOS7.2 部署Ceph分布式存储
  8. 如何成为一名大厂的优秀员工?
  9. JS事件及其兼容用法
  10. mdp框架_强化学习:MDP(Markov Decision Process)
  11. linux中查找文件属于那个软件包的方法
  12. c语言 在执行区域没有空格,C语言上机操作指导之TurboC.doc
  13. 720P实时超分和强悍的恢复效果:全知视频超分OVSR
  14. 雄安新区区块链底层系统(1.0)今日正式发布
  15. 添加C1WPFChart快捷键
  16. 脚本录制软件python 按键精灵 tc_Keymouse Go鼠标键盘脚本录制下载|开源版按键精灵软件_最火软件站...
  17. buuctf————[NPUCTF2020]你好sao啊
  18. php给超链接添加图标,图片超链接怎么设置
  19. Binder机制原理
  20. 苹果自带的APP下载分析统计工具

热门文章

  1. Spring Security OAuth2实现简单的密钥轮换及配置资源服务器JWK缓存
  2. 1m照片的宽和高是多少_jpg图片容量1M是多少KB
  3. dplayer + m3u8+ p2p加速
  4. 【渝粤题库】广东开放大学 综合英语1 形成性考核
  5. 王老吉为何败给加多宝?
  6. 计算机 上的图片怎样加密码,电脑照片文件怎么加密?电脑文件加密软件介绍...
  7. 最小圆覆盖问题 算法步骤与证明+代码模板
  8. String StringBuffer StringBuild区别?
  9. windows下装ipython
  10. monkey 压力测试 随机