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);
}
查看全文
相关阅读:
BEC listen and translation exercise 44
中译英12
BEC listen and translation exercise 43
中译英11
BEC listen and translation exercise 42
中译英10
BEC listen and translation exercise 41
中译英9
BEC listen and translation exercise 40
中译英8
原文地址:https://www.cnblogs.com/ringwang/p/1033429.html
最新文章
Python操作 RabbitMQ、Redis、Memcache、SQLAlchemy
numpy使用示例
爬虫之图片懒加载技术、selenium和PhantomJS
scrapy框架之递归解析和post请求
scrapy框架的日志等级和请求传参
基于scrapy-redis两种形式的分布式爬虫
爬虫的UA池和代理池
爬虫与反爬虫大战
scrapy分布式原理
scrapy的中间件Downloader Middleware实现User-Agent随机切换
热门文章
【leetcode】941. Valid Mountain Array
【leetcode】937. Reorder Log Files
【leetcode】934. Shortest Bridge
【leetcode】935. Knight Dialer
【leetcode】931. Minimum Falling Path Sum
【leetcode】929. Unique Email Addresses
【leetcode】923. 3Sum With Multiplicity
【leetcode】927. Three Equal Parts
【leetcode】926.Flip String to Monotone Increasing
【leetcode】925.Long Pressed Name
Copyright © 2011-2022 走看看