asp.net如何将页面Table控件中的数据写到excel中总结

news/2024/7/21 6:08:28 标签: excel, table, asp.net, 报表, html
htmledit_views">

我们在做html" title=报表>报表统计的时候,在页面中放个服务器端的控件Table1

在cs代码中自动组合行和列

 

第一种情况:页面有两个按钮,分别为显示html" title=报表>报表按钮和导出html" title=报表>报表

显示html" title=报表>报表按钮将组合成的html" title=table>table中的数据显示到界面上

导出html" title=报表>报表按钮将已显示到界面html" title=table>table中的数据些入到html" title=excel>excel中

结果看到html" title=excel>excel中的数据只是一个空的html" title=table>table没有任何数据

经过验证当向html" title=excel>excel中开始写入数据的时候html" title=table>table中的数据已经是空的,这种方法行不同

 

第二种情况:页面有两个按钮,分别为显示html" title=报表>报表按钮和导出html" title=报表>报表

显示html" title=报表>报表按钮将组合成的html" title=table>table中的数据显示到界面上

导出html" title=报表>报表按钮将显示html" title=报表>报表的过程再重复一遍,再将已显示到界面html" title=table>table中的数据些入到html" title=excel>excel中

结果看到html" title=excel>excel中的数据与界面显示的数据相吻合

所以要采用第二种方法

打开html" title=excel>excel可看到

 

关键代码:

 protected void Btn_ShowReport_Click(object sender, System.EventArgs e)
        {
            TableDialoutReport();
        }
        protected void Btn_ExportReport_Click(object sender, System.EventArgs e)
        {
            TableDialoutReport();
            Response.Clear();
            Response.Buffer = true;
            Response.Charset = "GB2312";
            Response.AppendHeader("Content-Disposition", "attachment;filename=DialoutReportTable.xls");
            // 如果设置为 GetEncoding("GB2312");导出的文件将会出现乱码!!!
            Response.ContentEncoding = System.Text.Encoding.UTF8;
            Response.ContentType = "application/ms-html" title=excel>excel";//设置输出文件类型为html" title=excel>excel文件。
            //Response.ContentType = "application/vnd.ms-html" title=excel>excel";//输出类型
            //Response.Charset = "";
            //关闭 ViewState
            Table1.EnableViewState = false;
            System.IO.StringWriter tw = new System.IO.StringWriter();//将信息写入字符串
            System.Web.UI.HtmlTextWriter hw = new System.Web.UI.HtmlTextWriter(tw);//在WEB窗体页上写出一系列连续的HTML特定字符和文本。
            //此类提供ASP.NET服务器控件在将HTML内容呈现给客户端时所使用的格式化功能
            //获取control的HTML
            Table1.RenderControl(hw);//将html" title=table>table中的内容输出到HtmlTextWriter对象中
            // 把HTML写回浏览器
            Response.Write(tw.ToString());
            Response.Flush();
            Response.End();
        }


 


http://www.niftyadmin.cn/n/1728015.html

相关文章

Python学习:Python GIL(全局解释器锁)

在Python学习:Python并发编程之Futures中解释为什么多线程每次只能有一个线程执行?是由于GIL(全局解释器锁)的存在,导致无论你启多少个线程,你有多少个cpu, Python在执行的时候会淡定的在同一时刻只允许一个线程运行。…

预编译头文件的使用

1、摘要 本文介绍VC6的预编译功能的使用,由于预编译详细使用比较的复杂,这里只介绍几个最重要的预编译指令: /Yu, /Yc,/Yx,/Fp。其它的详细资料可以参考 MSDN Compiler and Linker -> Details->Creating Precompiled Header files 2、关键字 预编译…

asp.net2003页面触发事件如何控制滚动条的位置

在页面aspx中<% Page language"c#" Codebehind"WorkManage_OrderHandleDetail.aspx.cs" AutoEventWireup"false" SmartNavigation"true" Inherits"standard_v5.WorkManage_OrderHandleDetail" %> 设置SmartNavigatio…

VC获取其他进程ListCtrl内容

VC读写其他进程ListCtrl数据到本进程的实例&#xff0c;下面用Windows任务管理器来做测试&#xff1a; 1、捕获窗口句柄&#xff1a; 用SPY可以看到如下父子窗口关系&#xff1a; 添加ListCtrl&#xff0c;设置style / Report、关联控件变量m_ListCtrl&#xff0c;再添加一个按…

Python学习:并发编程之Asyncio

在Python学习&#xff1a;Python并发编程之Futures学习了 Python 并发编程的一种实现——多线程。本博客继续学习 Python 并发编程的另一种实现方式——Asyncio。 在处理 I/O 操作时&#xff0c;使用多线程与普通的单线程相比&#xff0c;效率得到了极大的提高。多线程有诸多优…

android ListView监听滚动条滚动到底部时继续加载

listView.setOnScrollListener(new OnScrollListener() {Overridepublic void onScrollStateChanged(AbsListView view, int scrollState) {// 当不滚动时if (scrollState OnScrollListener.SCROLL_STATE_IDLE) {//判断是否滚动到底部if (view.getLastVisiblePosition() view…

VC无进程木马下载器源码(利用IE隐藏进程)

一、 打开半年前的一个工程&#xff0c;是利用IE来隐藏进程下载的实例&#xff0c;我想灰鸽子也是类似原理吧&#xff01; 下面是程序的主要思路&#xff1a; 1.获取程序自身路径&#xff0c;启动IE进程 2.获取到IE进程句柄 3.分配内存 4.获取进程映像的地址 5.得到内存镜像大小…

Python学习:垃圾回收机制

Python 程序在运行的时候&#xff0c;需要在内存中开辟出一块空间&#xff0c;用于存放运行时产生的临时变量&#xff1b;计算完成后&#xff0c;再将结果输出到永久性存储器中。如果数据量过大&#xff0c;内存空间管理不善就很容易出现 OOM&#xff08;out of memory&#xf…