几本闲书
::
首页
::
联系
::
订阅
::
管理
5 Posts :: 0 Stories :: 22 Comments :: 0 Trackbacks
公告
昵称:
rico
园龄:
4年10个月
粉丝:
0
关注:
0
搜索
随笔档案
(5)
2007年4月 (3)
2007年3月 (2)
积分与排名
积分 - 4847
排名 - 13500
最新评论
把服务器端数据库的DATASET数据写入客户端EXCEL文件
最近做出版发行系统用到这块.
所以张罗了一个简单解决方案。
说它简单,是因为未对Excel做什么处理。
public
void
datasetToExcel1(
string
fileName)
{
DataSet ds
=
(DataSet)
this
.Cache[
"
DataSet
"
];
DataTable dt
=
ds.Tables[
0
];
System.IO.StringWriter sw
=
new
System.IO.StringWriter();
sw.WriteLine(
"
姓名\t公司\t投递地址\t邮编\t份数\t手机\t电话
"
);
foreach
(DataRow dr
in
dt.Rows)
{
sw.WriteLine(dr[
"
pSubscriberName
"
]
+
"
\t
"
+
dr[
"
pSubscriberCompany
"
]
+
"
\t
"
+
dr[
"
pSubscriberAddress
"
]
+
"
\t
"
+
dr[
"
pSubscriberPost
"
]
+
"
\t
"
+
dr[
"
pMagazineShareNum
"
]
+
"
\t
"
+
dr[
"
pSubscriberPhone
"
]
+
"
\t
"
+
dr[
"
pSubscriberTel
"
]);
}
sw.Close();
Response.AddHeader(
"
Content-Disposition
"
,
"
attachment; filename=
"
+
System.Web.HttpUtility.UrlEncode(fileName,System.Text.Encoding.UTF8)
+
"
.xls
"
);
Response.ContentType
=
"
application/ms-excel
"
;
Response.ContentEncoding
=
System.Text.Encoding.GetEncoding(
"
GB2312
"
);
Response.Write(sw);
Response.End();
}
这里要注意的是fileName 必须进行转换,不然下载的文件名是乱码。
绿色通道:
好文要顶
关注我
收藏该文
与我联系
posted on 2007-04-10 10:58
rico
阅读(2473)
评论(12)
编辑
收藏
Feedback
708561
#1楼
2007-04-10 11:33
大豆男生
不错
回复
引用
查看
#2楼
2007-04-10 11:45
ekinyang
不是真正的操作Excel,实际上是把服务器端的dataset的内容放到了一个*.xls文件中,然后用Excel打开而已。作者可以看看真正的Excel编码和用你的方法导出的Excel编码。
回复
引用
#3楼
2007-04-10 14:13
软件~民工
这种格式叫CSV格式~~,CSV也可以使用excel打开,但不是excel中els的格式
回复
引用
查看
#4楼
[
楼主
]
2007-04-10 14:36
小赵
了解了一下。CSV格式的文档如果以EXCEL开启,由于计算机档案数据转换的原因,会将其CRC之数值改做科学记号方式储存,而造成档案中的CRC值发生错误。
不知道我这种方式生成的*.xls文档会出现值错误不?
回复
引用
查看
#5楼
2007-04-10 16:37
Wuya
这个方法很快捷,实用。
不过和写HTML TABLE然后取个xls的名字一样都是伪EXCEL文件。
如果直接用oledb数据库连接来写xls文件能得到真正的xls格式,不过有很多很多的限制。
回复
引用
查看
#6楼
2007-04-10 17:38
亚历山大同志
拿来糊弄不懂行的客户是很好用的,如果不需要在导出的Excel做很复杂的操作的话,这样子也没有什么不好的
回复
引用
查看
#7楼
2007-04-10 18:46
aJAXu
我也是这么做的:)
回复
引用
查看
#8楼
2007-04-10 22:38
兰色水[未注册用户]
觉得不错,以后会经常来博客园学习学习的
回复
引用
#9楼
2007-04-11 00:19
deerchao
@小赵
用"括起来看上去像数值或日期等特殊格式,但实际上是字符串的字段,Excel就会以字符串的形式处理相应的数据。
被括起来的内容里,如果有",需要换成""。
回复
引用
查看
#10楼
2007-04-11 10:13
域名注册[未注册用户]
太棒了!:)
回复
引用
#11楼
2007-04-11 10:14
虚拟主机[未注册用户]
呵呵不错呀
回复
引用
#12楼
2007-04-11 11:30
∈鱼杆
我是直接绑定DataGrid,将DataGrid 的Html 输入的
回复
引用
查看
注册用户登录后才能发表评论,请
登录
或
注册
,
返回博客园首页
。
首页
博问
闪存
新闻
园子
招聘
知识库
最新IT新闻
:
·
伊朗封杀Gmail和Facebook等互联网服务
·
分析称专利之争让谷歌苹果两败俱伤
·
Android平台发现新型手机病毒Rootsmart
·
HTC首款Android4.0手机大曝光
·
这是不是你期待的 iPad 3?
»
更多新闻...
最新知识库文章
:
·
高级编程语言的发展历程
·
如何学习一门新的编程语言?
·
学习不同编程语言的重要性
·
为什么我喜欢富于表达性的编程语言
·
计算机专业的女生为什么要学编程
»
更多知识库文章...
China-pub 2011秋季教材巡展
China-Pub 计算机绝版图书按需印刷服务
Copyright @ rico
Powered by:
.Text
and
ASP.NET
Theme by:
.NET Monster