zoukankan
html css js c++ java
asp.net数据导出到Excel (从网络摘操)
一、无格式的导出
就是导出时没有任何格式,完全对文件写入,这个比较难看,但是实用。
/**/
///
<summary>
///
该方法实现将数据导入到Excel文件中,其中的DataTable dt就是你需要将数据写入到Excel中的数据;
///
</summary>
///
<param name="dt">
导出的数据源
</param>
///
<param name="w">
文件流
</param>
public
void
ExportExcel(DataTable dt, System.IO.StreamWriter w)
{
//
HttpResponse resp;
//
resp = Page.Response;
//
resp.ContentEncoding = System.Text.Encoding.GetEncoding("GB2312");
//
resp.AppendHeader("Content-Disposition", "attachment;filename=" + FileName);
string
colHeaders
=
""
, ls_item
=
""
;
//
定义表对象与行对象,同时用DataSet对其值进行初始化
DataRow[] myRow
=
dt.Select();
//
可以类似dt.Select("id>10")之形式达到数据筛选目的
int
i
=
0
;
int
cl
=
dt.Columns.Count;
//
取得数据表各列标题,各标题之间以t分割,最后一个列标题后加回车符
for
(i
=
0
; i
<
cl; i
++
)
{
if
(i
==
(cl
-
1
))
//
最后一列,加n
{
colHeaders
+=
dt.Columns[i].Caption.ToString()
+
"
\n
"
;
}
else
{
colHeaders
+=
dt.Columns[i].Caption.ToString()
+
"
\t
"
;
}
}
//
resp.Write(colHeaders);
w.Write(colHeaders);
//
向HTTP输出流中写入取得的数据信息
//
逐行处理数据
foreach
(DataRow row
in
myRow)
{
//
当前行数据写入HTTP输出流,并且置空ls_item以便下行数据
for
(i
=
0
; i
<
cl; i
++
)
{
if
(i
==
(cl
-
1
))
//
最后一列,加n
{
ls_item
+=
row[i].ToString()
+
"
\n
"
;
}
else
{
ls_item
+=
row[i].ToString()
+
"
\t
"
;
}
}
w.Write(ls_item);
ls_item
=
""
;
}
//
resp.End();
w.Flush();
w.Close();
}
二、直接从Gridview里导出
这种导出是所见既所得的方式,就是显示在gridview里是什么样导出就是什么样了,这个导出就好看多了,谢谢~!@
this
.Panel1.Visible
=
false
;
Response.Clear();
Response.Buffer
=
true
;
Response.Charset
=
"
GB2312
"
;
string
filename
=
"
Task
"
+
System.DateTime.Now.Year.ToString()
+
System.DateTime.Now.Month.ToString()
+
System.DateTime.Now.Day.ToString()
+
System.DateTime.Now.Hour.ToString()
+
System.DateTime.Now.Minute.ToString()
+
"
.xls
"
;
Response.AppendHeader(
"
Content-Disposition
"
,
"
attachment;filename=
"
+
System.Web.HttpUtility.UrlEncode
(
filename));
//
如果设置为 GetEncoding("GB2312");导出的文件将会出现乱码!!!
Response.ContentEncoding
=
System.Text.Encoding.UTF7;
Response.ContentType
=
"
application/ms-excel
"
;
//
设置输出文件类型为excel文件。
System.IO.StringWriter oStringWriter
=
new
System.IO.StringWriter();
System.Web.UI.HtmlTextWriter oHtmlTextWriter
=
new
System.Web.UI.HtmlTextWriter(oStringWriter);
this
.GridView1.RenderControl(oHtmlTextWriter);
//
读取数据了
Response.Output.Write(oStringWriter.ToString());
Response.Flush();
Response.End();
this
.Panel1.Visible
=
true
;
由于ReaderControl方法会重调客户端的一个方法验证,如果不重载的话会报错
public
override
void
VerifyRenderingInServerForm(Control control)
{
//
base.VerifyRenderingInServerForm(control);
}
查看全文
相关阅读:
Table交替行变色 鼠标经过变色 单击变色
编程专用字体(雅黑字体+Consolas)
Enterprise Architect学习笔记-EA中关系
通用分页存储过程
解决vs2008无法切换设计视图
盒子模式
ASP.NET界面数据绑定大大杂烩
Tyvj P1032 Begin2 Unit1 身份验证
NOIP2010普及组T1
TyvjBegin P1036 Begin2 Unit1 数独验证
原文地址:https://www.cnblogs.com/ringwang/p/1033429.html
最新文章
Enterprise Library 3.0 Logging Application Block 记录日志至数据库
SQL2000数据库中删除“坏表”的方法
用VS.NET 2003开发和调用Web Service实例
debug和release的区别
Enterprise Library 3.1 编译Data.NUnit和Data.VSTS报出缺少“NUnit”和“sqlceproviderfactory”错误提示 的解决方法
VC6.0的控件工具箱
如何处理登录Oracle时ORA28000: the account is locked?
程序员的编辑器EmEditor
c# 一般处理程序调用js方法
XCode4.3.3 + iOS5.1 无证书开发并生成app、ipa文件
热门文章
Delegate如何进行类型转换?
@@IDENTITY和SCOPE_IDENTITY和IDENT_CURRENT的区别
“协变”、“逆变”与Delegate类型转换
VS2012 测试WebService
VS2012 调试Web项目 遭遇 HTTP 错误 500.23 Internal Server Error
VS2012远程调试
编写自文档化的代码
HTTP中Get与Post的区别 (转)
职场中值得你信赖的10种老板(转)
制作自己博客园文章签名
Copyright © 2011-2022 走看看