DataGird导出EXCEL的几个方法
DataGird导出EXCEL的几个方法(WebControl)
using System;
using System.Data;
using System.Text;
using System.Web;
using System.Web.UI;
using System.Diagnostics;
using System.Web.UI.WebControls;
using System.Web.UI.HtmlControls;
using System.Data.SqlClient;
using System.Collections;
namespace bookstore
{
/// <summary>
/// myExcel 的摘要说明。
/// </summary>
public class myExcel
{
public myExcel()
{
}
/// <summary>
/// 将DATAGRID导出为EXCEL文件方法一,
/// 参数是:要导出的DATAGRID的ID和要保存下来的EXCEL文件名
/// </summary>
/// <param name="myPage">page</param>
/// <param name="dg">datagrid</param>
/// <param name="name">filename</param>
private void OutExcel(Page myPage,DataGrid dg,string name)
{
HttpResponse Response;
Response=myPage.Response;
string name1="attachment;filename="+name+".xls";
dg.Visible=true;
Response.Clear();
Response.Buffer= true;
Response.Charset="GB2312";
Response.AppendHeader("Content-Disposition",name1);
Response.ContentEncoding=System.Text.Encoding.GetEncoding("GB2312");
Response.ContentType ="application/ms-excel";
dg.EnableViewState = false;
System.IO.StringWriter oStringWriter = new System.IO.StringWriter();
System.Web.UI.HtmlTextWriter oHtmlTextWriter = new System.Web.UI.HtmlTextWriter(oStringWriter);
dg.RenderControl(oHtmlTextWriter);
Response.Write(oStringWriter.ToString());
Response.End();
}
/// <summary>
/// 将DATAGRID导出为EXCEL文件方法二,
/// 参数是:要导出的DATAGRID的ID和要保存下来的EXCEL文件名
/// </summary>
/// <param name="myPage">page</param>
/// <param name="ctl">datagrid</param>
/// <param name="filename">filename</param>
public void ExportToExcel(Page myPage,DataGrid ctl,string filename)
{
HttpResponse Response;
Response=myPage.Response;
bool CurrCtlVisible=ctl.Visible;
ctl.Visible=true;
Response.AppendHeader("Content-Disposition","attachment;filename="+filename+".xls");
Response.ContentEncoding = System.Text.Encoding.GetEncoding("utf-8");
Response.ContentType = "application/ms-excel";
ctl.Page.EnableViewState = false;
System.IO.StringWriter tw = new System.IO.StringWriter();
System.Web.UI.HtmlTextWriter hw = new HtmlTextWriter(tw);
ctl.RenderControl(hw);
Response.Write(tw.ToString());
Response.End();
ctl.Page.EnableViewState = true;
ctl.Visible=CurrCtlVisible;
}
private void DgOutExcel(Page myPage,DataGrid dg,string name)
{
HttpResponse Response;
Response=myPage.Response;
string name1="attachment;filename="+name+".xls";
dg.Visible=true;
Response.Clear();
Response.Buffer= true;
Response.Charset="GB2312";
Response.AppendHeader("Content-Disposition",name1);
Response.ContentEncoding=System.Text.Encoding.GetEncoding("GB2312");
Response.ContentType ="application/ms-excel";
dg.EnableViewState = false;
System.IO.StringWriter oStringWriter = new System.IO.StringWriter();
System.Web.UI.HtmlTextWriter oHtmlTextWriter = new System.Web.UI.HtmlTextWriter(oStringWriter);
dg.RenderControl(oHtmlTextWriter);
Response.Write(oStringWriter.ToString());
Response.End();
}
#region 导出EXCEL,用DATASET
public string myExportString(DataGrid DG,DataSet ds)
{
string HTstring="<table><tr>";
string Fieldstring="";
ArrayList myAL=new ArrayList();
string sRows="<tr>";
for(int i=0;i<DG.Columns.Count;i++)
{
HTstring+="<td>"+DG.Columns[i].HeaderText+"</td>";
Fieldstring+="<td>"+((System.Web.UI.WebControls.BoundColumn)(DG.Columns[i])).DataField+"</td>";
myAL.Add(((System.Web.UI.WebControls.BoundColumn)(DG.Columns[i])).DataField);
}
for(int k=0;k<ds.Tables[0].Rows.Count;k++)
{
foreach(string field in myAL)
{
sRows+= "<td>"+ds.Tables[0].Rows[k][field]+"</td>";
}
sRows+="</tr>";
}
HTstring+="</tr>"+sRows+"</table>";
return HTstring;
}
public void SaveToExcel(Page myPage, string myExportString,string myFileName)
{
HttpResponse resp;
resp=myPage.Response;
resp.ContentEncoding=System.Text.Encoding.GetEncoding("GB2312");
resp.AppendHeader("Content-Disposition","attachment;filename="+myFileName+".xls");
resp.ContentType="application/ms-excel";
resp.Write(myExportString);
resp.End();
//resp.Clear();
//resp.Close();
}
public void Export(DataGrid myDG,DataTable dt,HttpResponse response)
{
// clean up response object
response.Clear();
response.Charset = "";
response.Charset = "UTF-8";
// response.ContentEncoding = System.Text.Encoding.Default;
response.ContentEncoding=System.Text.Encoding.GetEncoding("GB2312");
// set response object's mime type
// response.ContentType = "application/vnd.ms-excel";
response.AppendHeader("Content-Disposition","attachment;filename=mytest.xls");
System.IO.StringWriter sw = new System.IO.StringWriter();
System.Web.UI.HtmlTextWriter htw = new System.Web.UI.HtmlTextWriter(sw);
DataGrid dg = new DataGrid();
dg.AllowPaging = false;
dg.AllowSorting = false;
ArrayList myAL=new ArrayList();
for(int i=0;i<myDG.Columns.Count;i++)
{
// dg.Columns.AddAt(i,myDG.Columns[i]);
// dg.Columns[i].HeaderText=myDG.Columns[i].HeaderText;
myAL.Add(((System.Web.UI.WebControls.BoundColumn)(myDG.Columns[i])).DataField);
for(int k=0;k<dt.Columns.Count;k++)
{
foreach(string field in myAL)
{
if(dt.Columns[i].ColumnName==field)
{
dt.Columns[i].ColumnName=myDG.Columns[i].HeaderText;
}
}
}
}
dg.DataSource = dt;
dg.ShowHeader = true;
dg.HeaderStyle.BackColor = System.Drawing.Color.DarkGray;
dg.HeaderStyle.ForeColor = System.Drawing.Color.White;
dg.HeaderStyle.Font.Bold = true;
dg.AlternatingItemStyle.BackColor = System.Drawing.Color.LightGray;
dg.DataBind();
dg.RenderControl(htw);
response.Write(sw.ToString());
response.End();
}
#endregion
}
}
DataGird导出EXCEL的几个方法的更多相关文章
- 传参导出Excel表乱码问题解决方法
业务场景 先描述一下业务场景,要实现的功能是通过搜索框填写参数,然后点击按钮搜索数据,将搜索框的查询参数获取,附加在链接后面,调导Excel表接口,然后实现导出Excel功能.其实做导Excel表功能 ...
- .NET导出Excel的四种方法及评测
.NET导出Excel的四种方法及评测 导出Excel是.NET的常见需求,开源社区.市场上,都提供了不少各式各样的Excel操作相关包.本文,我将使用NPOI.EPPlus.OpenXML.Aspo ...
- [转帖].NET导出Excel的四种方法及评测
.NET导出Excel的四种方法及评测 https://www.cnblogs.com/sdflysha/p/20190824-dotnet-excel-compare.html 导出Excel是.N ...
- Asp.net导出Excel(HTML输出方法)
主要思路: 实例化Gridview,将值绑定后输出...(用烂了的方法) 贴上核心代码: public static void ExportToExcel(DataTable dataList, st ...
- Asp.net导出Excel乱码的解决方法
通过跟踪Asp.net服务器代码,没有乱码,然而导出Excel到浏览器后,打开时出现乱码. 解决方法是添加编码格式的前缀字节码:Response.BinaryWrite(System.Text.Enc ...
- POI导出Excel文档通用工具方法
import java.lang.reflect.InvocationTargetException; import java.util.List; import java.util.Map; imp ...
- net npoi将List<实体>导出excel的最简单方法
只是临时导数据用的.方便.最基本的方法, [HttpGet] [Route("ExportEnterprise")] public BaseResponse ExportEnter ...
- asp.net 导出excel的一种方法
项目用到的一种导出excel 的方法予以记录:(具体的业务类可更具情况替换使用) protected void Export(string filename, List<ComponentCon ...
- html table表格导出excel的方法 html5 table导出Excel HTML用JS导出Excel的五种方法 html中table导出Excel 前端开发 将table内容导出到excel HTML table导出到Excel中的解决办法 js实现table导出Excel,保留table样式
先上代码 <script type="text/javascript" language="javascript"> var idTmr; ...
随机推荐
- 【nginx运维基础(7)】常用PHP开源程序的NginxRewrite示例
在写伪静态的时候,可以先用一个打印$_GET的PHP文件来测试,并且一定注意浏览器缓存,另外正则里如果有"{}",正则要用双引号包起来 dedecms location / { r ...
- 【Linux高频命令专题(15)】more
more命令,功能类似 cat ,cat命令是整个文件的内容从上到下显示在屏幕上. more会以一页一页的显示方便使用者逐页阅读,而最基本的指令就是按空白键(space)就往下一页显示,按 b 键就会 ...
- Filter(过滤器)常见应用
孤傲苍狼 只为成功找方法,不为失败找借口! javaweb学习总结(四十六)——Filter(过滤器)常见应用 一.统一全站字符编码 通过配置参数charset指明使用何种字符编码,以处理Html F ...
- QString->string->wstring->LPCWSTR
QFileInfo info("./records.db"); std::string str = info.absoluteFilePath().toStdString(); / ...
- 写出完美论文的十个技巧10 Tips for Writing the Perfect Paper
10 Tips for Writing the Perfect Paper Like a gourmet meal or an old master painting, the perfect col ...
- YUV和RGB格式分析
做嵌入式项目的时候,涉及到YUV视频格式到RGB图像的转换,虽然之前有接触到RGB到都是基于opencv的处理,很多东西并不需要我们过多深入的去探讨,现在需要完全抛弃现有的算法程序,需要从内存中一个字 ...
- java匿名对象
java学习面向对象之匿名内部类 之前我们提到“匿名”这个字眼的时候,是在学习new对象的时候,创建匿名对象的时候用到的,之所以说是匿名,是因为直接创建对象,而没有把这个对象赋值给某个值,才称之为匿名 ...
- IP地址分类及私网IP
5类IP地址: IP地址共有32位字节,其中A~C类IP地址由类标识号.网络地址和主机地址组成,A类标识最高位为0,网络地址为1字节,主机地址为3字节, B类标识最高位为10,网络地址为2字节,主机地 ...
- 利用Java自带的MD5加密java.security.MessageDigest;
MD5加密算法,即"Message-Digest Algorithm 5(信息-摘要算法)",它由MD2.MD3.MD4发展而来的一种单向函数算法(也就是HASH算法),它是国际著 ...
- 使用DX绘制3D物体时新手常犯错误,看不见物体时可以一一排查
1.镜头不对: 物体不在镜头范围内,检查视图矩阵,世界矩阵,投影矩阵. 2.颜色全黑: 打开光照情况下,MATERIAL全为0, 或,在没有打开光照情况下,颜色值为0,造成全黑.检查当前Materia ...