C#从Datagrid中导出EXCEL表
2007-07-19 21:26
295 查看
private void Export(System.Web.UI.WebControls.DataGrid dg,string fileName,string typeName)
...{
System.Web.HttpResponse httpResponse = Page.Response;
httpResponse.AppendHeader
("Content-Disposition","attachment;filename="
+HttpUtility.UrlEncode(fileName,System.Text.Encoding.UTF8));
httpResponse.ContentEncoding=System.Text.Encoding.GetEncoding("GB2312");
httpResponse.ContentType = typeName;
System.IO.StringWriter tw = new System.IO.StringWriter() ;
System.Web.UI.HtmlTextWriter hw = new System.Web.UI.HtmlTextWriter (tw);
dg.RenderControl(hw);
string filePath = Server.MapPath("..")+fileName;
System.IO.StreamWriter sw = System.IO.File.CreateText(filePath);
sw.Write(tw.ToString());
sw.Close();
DownFile(httpResponse,fileName,filePath);
httpResponse.End();
}
private 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;
}
}
...{
System.Web.HttpResponse httpResponse = Page.Response;
httpResponse.AppendHeader
("Content-Disposition","attachment;filename="
+HttpUtility.UrlEncode(fileName,System.Text.Encoding.UTF8));
httpResponse.ContentEncoding=System.Text.Encoding.GetEncoding("GB2312");
httpResponse.ContentType = typeName;
System.IO.StringWriter tw = new System.IO.StringWriter() ;
System.Web.UI.HtmlTextWriter hw = new System.Web.UI.HtmlTextWriter (tw);
dg.RenderControl(hw);
string filePath = Server.MapPath("..")+fileName;
System.IO.StreamWriter sw = System.IO.File.CreateText(filePath);
sw.Write(tw.ToString());
sw.Close();
DownFile(httpResponse,fileName,filePath);
httpResponse.End();
}
private 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;
}
}
相关文章推荐
- DataGrid内容导出Excel文件(C#)
- DataGrid导出Excel(c#)
- [C#]WinForm中DataGrid扩展 - 快速导出Excel文件
- 【原创】[C#]WinForm中DataGrid扩展 - 导出Excel文件(1)
- c# 将DataGrid中的项导出为Excel
- 用DataGrid导出列表信息到Excel C#
- C# 基于DocumentFormat.OpenXml的数据导出到Excel
- C# 读写excel 用于导入数据库 批量导入导出excel
- C#导出到Excel——无法嵌入互操作类型“Microsoft.Office.Interop.Excel.ApplicationClass”。请改用适用的接口。
- 导出Datagrid里所有数据到excel
- 今天发现了把DataGrid导出Excel时格式化字符串的方法。
- C#合并excel单元格,操作合并后的单元格 (winform导出excel)
- C# WinForm导出Excel
- asp.net导出Excel/Csv格式数据最优方案(C#)
- C# 导出Excel的单元格属性设置
- C#将dataGridView数据导出成EXCEl、WORD格式
- c#导出数据至excel模板中,可分页
- C#之四十三 从DataGridView导出数据到Excel
- C# 将数据导出到Excel汇总
- C#导出泛型IList到Excel