• 博客园logo
  • 会员
  • 众包
  • 新闻
  • 博问
  • 闪存
  • 赞助商
  • HarmonyOS
  • Chat2DB
    • 搜索
      所有博客
    • 搜索
      当前博客
  • 写随笔 我的博客 短消息 简洁模式
    用户头像
    我的博客 我的园子 账号设置 会员中心 简洁模式 ... 退出登录
    注册 登录
yoxking
yoxking Tech.
博客园    首页    新随笔    联系   管理    订阅  订阅

to Excel

有一个WEB页面,上有两个DROPDOWNLIST控件和一个“导出到EXCEL”的按钮,之间是联动关系,即第二个DROPDOWNLIST中的内容随第一个DROPDOWNLIST选择的内容变化而变化.
   本页面的功能是按照两个DROPDOWNLIST控件中的内容(即作为获取数据的条件)到数据库中找出满足条件的数据,然后用一下代码,导出到EXCEL中,
   现在存在的问题是:未执行导出之前,第二个DROPDOWNLIST中的内容能随第一个DROPDOWNLIST选择的内容变化而变化;执行导出后,第二个DROPDOWNLIST中的内容不能随第一个DROPDOWNLIST选择的内容变化而变化.请教是什么原因?
   HttpResponse resp;
resp = page.Response;
resp.ContentEncoding = System.Text.Encoding.GetEncoding("GB2312");
resp.AppendHeader("Content-Disposition", "attachment;filename=FileName.xls");
// 指定返回的是一个不能被客户端读取的流,必须被下载
resp.ContentType = "application/ms-excel";

string colHeaders= "", ls_item="";
int i=0;
DataRow[] myRow=dataTable.Select("");
for(i=0;i<dataTable.Columns.Count-1;i++)
{
colHeaders+=dataTable.Columns[i].Caption.ToString()+"\t";
}
colHeaders +=dataTable.Columns[i].Caption.ToString() +"\n";
//向HTTP输出流中写入取得的数据信息(表头信息)
resp.Write(colHeaders);
//逐行处理数据
foreach(DataRow row in myRow)
{
//在当前行中,逐列获得数据,数据之间以\t分割,结束时加回车符\n
for(i=0;i<row.Table.Columns.Count-1;i++)
ls_item +=row[i].ToString() + "\t";
ls_item += row[i].ToString() +"\n";
//当前行数据写入HTTP输出流,并且置空ls_item以便下行数据
resp.Write(ls_item);
ls_item="";
}
resp.End();

 

posted @ 2005-01-04 12:14  yoxking   阅读(196)  评论(0)    收藏  举报
刷新页面返回顶部
博客园  ©  2004-2025
浙公网安备 33010602011771号 浙ICP备2021040463号-3