gridview转excel的问题

工人21 2010-09-21 02:48:02
protected void btnexcel_Click(object sender, EventArgs e)
{
string dt1 = DateTime.Now.ToString("yyyy-MM-dd");//将当前的年月日赋值给dt1
this.Export("application/ms-excel", "dt1 + 日原油采购部日报表.xls");
}

private void Export(string FileType, string FileName)
{
Response.Charset = "GB2312";
Response.ContentEncoding = System.Text.Encoding.UTF7;
Response.AppendHeader("Content-Disposition", "attachment;filename=" + HttpUtility.UrlEncode(FileName, Encoding.UTF8).ToString());
Response.ContentType = FileType;
this.EnableViewState = false;
StringWriter tw = new StringWriter();
HtmlTextWriter hw = new HtmlTextWriter(tw);
this.ClassList.RenderControl(hw);
Response.Write(tw.ToString());
Response.End();
}

问题:
输出excel文件的地址在那规定?
...全文
173 10 打赏 收藏 转发到动态 举报
写回复
用AI写文章
10 条回复
切换为时间正序
请发表友善的回复…
发表回复
tashiwoweiyi 2010-09-21
  • 打赏
  • 举报
回复
[Quote=引用 3 楼 xixixinxin 的回复:]
兄台,我是菜鸟,真看不懂
[/Quote]
那自己先研究吧
shuai13869896140 2010-09-21
  • 打赏
  • 举报
回复
http://topic.csdn.net/u/20100909/09/b742e8fe-3a3a-400c-8262-9b010bd68358.html
之前有的帖子 也有回复 LZ不妨看看```
wuyq11 2010-09-21
  • 打赏
  • 举报
回复
protected void Btn_ExportClick(object sender, EventArgs e)

{

string style = @"<style> .text { mso-number-format:\@; } </script> ";
Response.ClearContent();
Response.AddHeader("content-disposition", "attachment; filename=MyExcelFile.xls");//输出文件名
Response.ContentType = "application/excel";
StringWriter sw = new StringWriter();
HtmlTextWriter htw = new HtmlTextWriter(sw);
gv.RenderControl(htw);
Response.Write(style);
Response.Write(sw.ToString());
Response.End();
}

public override void VerifyRenderingInServerForm(Control control)
{

}
或打开文件夹模板赋值到单元格,下载EXCEL文件
wapdos 2010-09-21
  • 打赏
  • 举报
回复

protected void btnToExcel_Click(object sender, EventArgs e)
{
Response.Clear();//清楚缓冲区流所有内容输出
Response.BufferOutput = true;
Response.Charset = "GB2312";//获取或设置输出流的HTTP字符集
//假定导出的文件名为FileName.xls
Response.AppendHeader("Content-Disposition", "attachment;filename=FileName.xls");//将http头添加到输出流
Response.ContentEncoding = System.Text.Encoding.GetEncoding("GB2312");
//设置导出的文件格式
Response.ContentType = "application/ms-excel";
EnableViewState = false;
System.Globalization.CultureInfo cultureinfo = new System.Globalization.CultureInfo("ZH-CN", true);
System.IO.StringWriter stringWrite = new System.IO.StringWriter(cultureinfo);
System.Web.UI.HtmlTextWriter textWrite = new HtmlTextWriter(stringWrite);
Gv.RenderControl(textWrite);
//把html流写回到浏览器
Response.Write(stringWrite.ToString());
Response.End();
fangxiaofelix 2010-09-21
  • 打赏
  • 举报
回复
恩,已经有正解了
kj289907795 2010-09-21
  • 打赏
  • 举报
回复
....网上一搜一大堆
工人21 2010-09-21
  • 打赏
  • 举报
回复
兄台,我是菜鸟,真看不懂


[Quote=引用 2 楼 tashiwoweiyi 的回复:]
这就是导出EXCEL的方法,,,,调用这类 Export 参数都看得懂吧。。


C# code


public static void Export(System.Web.UI.Page page,System.Data.DataTable tab,string FileName)
{
System.Web.HttpResponse httpResp……
[/Quote]
tashiwoweiyi 2010-09-21
  • 打赏
  • 举报
回复
这就是导出EXCEL的方法,,,,调用这类 Export 参数都看得懂吧。。



public static void Export(System.Web.UI.Page page,System.Data.DataTable tab,string FileName)
{
System.Web.HttpResponse httpResponse = page.Response;
System.Web.UI.WebControls.DataGrid dataGrid=new System.Web.UI.WebControls.DataGrid();
dataGrid.DataSource=tab.DefaultView;
dataGrid.AllowPaging = false;
dataGrid.HeaderStyle.ForeColor = Color.White;
dataGrid.HeaderStyle.BackColor = Color.FromName("#aaaadd");
dataGrid.HeaderStyle.HorizontalAlign = HorizontalAlign.Center;
dataGrid.HeaderStyle.Font.Bold = true;
dataGrid.DataBind();
httpResponse.AppendHeader("Content-Disposition","attachment;filename="+HttpUtility.UrlEncode(FileName,System.Text.Encoding.UTF8)); //filename="*.xls";
httpResponse.ContentEncoding=System.Text.Encoding.GetEncoding("GB2312");
httpResponse.ContentType ="application/ms-excel";
System.IO.StringWriter tw = new System.IO.StringWriter() ;
System.Web.UI.HtmlTextWriter hw = new System.Web.UI.HtmlTextWriter (tw);
dataGrid.RenderControl(hw);

string filePath = page.Server.MapPath(" .")+"\\Files\\" +FileName;
if( !Directory.Exists(Path.GetDirectoryName(filePath)))
Directory.CreateDirectory(Path.GetDirectoryName(filePath)) ;

System.IO.StreamWriter sw = System.IO.File.CreateText(filePath);
sw.Write(tw.ToString());
sw.Close();

DownFile(httpResponse,FileName,filePath);

httpResponse.End();
}
private static bool DownFile(System.Web.HttpResponse Response,string fileName,string fullPath)
{
try
{
Response.ContentType = "application/octet-stream";

Response.AppendHeader("Content-Disposition","attachment;filename=" +
HttpUtility.UrlEncode(fileName,System.Text.Encoding.UTF8) + ";charset=GB2312");
System.IO.FileStream fs= System.IO.File.OpenRead(fullPath);
long fLen=fs.Length;
int size=102400;//每100K同时下载数据
byte[] readData = new byte[size];//指定缓冲区的大小
if(size>fLen)size=Convert.ToInt32(fLen);
long fPos=0;
bool isEnd=false;
while (!isEnd)
{
if((fPos+size)>fLen)
{
size=Convert.ToInt32(fLen-fPos);
readData = new byte[size];
isEnd=true;
}
fs.Read(readData, 0, size);//读入一个压缩块
Response.BinaryWrite(readData);
fPos+=size;
}
fs.Close();
System.IO.File.Delete(fullPath);
return true;
}
catch
{
return false;
}
}
工人21 2010-09-21
  • 打赏
  • 举报
回复
不是转
是导出

111,129

社区成员

发帖
与我相关
我的任务
社区描述
.NET技术 C#
社区管理员
  • C#
  • Creator Browser
  • by_封爱
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告

让您成为最强悍的C#开发者

试试用AI创作助手写篇文章吧