几本闲书

   :: 首页 :: 联系 :: 订阅 订阅 :: 管理
  5 Posts :: 0 Stories :: 22 Comments :: 0 Trackbacks
最近做出版发行系统用到这块.
所以张罗了一个简单解决方案。
说它简单,是因为未对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 阅读(2391) 评论(12)  编辑 收藏 网摘

Feedback

#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      
我也是这么做的:)
  回复  引用  查看    

觉得不错,以后会经常来博客园学习学习的
  回复  引用    

#9楼 2007-04-11 00:19 deerchao      
@小赵
用"括起来看上去像数值或日期等特殊格式,但实际上是字符串的字段,Excel就会以字符串的形式处理相应的数据。

被括起来的内容里,如果有",需要换成""。

  回复  引用  查看    

太棒了!:)
  回复  引用    

呵呵不错呀
  回复  引用    

#12楼 2007-04-11 11:30 ∈鱼杆      
我是直接绑定DataGrid,将DataGrid 的Html 输入的
  回复  引用  查看    




发表评论

昵称: [登录] [注册]

主页:

邮箱:(仅博主可见)

评论内容:

  登录  注册

[使用Ctrl+Enter键快速提交评论]

0 706747




相关文章:

相关链接: