Asp.net 依据DataGrid与DataTable不在服务器保存导出EXCEL

本文介绍了一种使用ASP.NET将数据网格中的数据导出为Excel文件的方法。该方法通过遍历数据网格的列和行来构建CSV格式的字符串内容,并确保只包含可见且非操作性质的列。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

using System;
using System.Data;
using System.IO;
using System.Web.UI.WebControls;

namespace IntechWMS.File
{
 /// <summary>
 /// DownLoadDGExport 的摘要说明。
 /// </summary>
 public class DownLoadDGExport
 {
  public DownLoadDGExport()
  {
   //
   // TODO: 在此处添加构造函数逻辑
   //
  }

 public static void DownLoad(System.Web.HttpResponse HttpRs, System.Web.HttpServerUtility server, System.Data.DataTable dt, System.Web.UI.WebControls.DataGridColumnCollection dcc, string FileName)
  {
   string tmpFileName = GetUniquelyString(); //获取一个不重复的文件名

   StringWriter  sw=new  StringWriter();  

   //增加表头
   string CsvHead = "";
   
   foreach(DataGridColumn dc in dcc)
   {
    if(dc.HeaderText.Trim() != "" && dc.HeaderText.Trim() != "操作" && dc.Visible == true)
    {
     CsvHead = CsvHead + dc.HeaderText.Trim() + "/t";
    }
   }
   sw.WriteLine(CsvHead.Remove(CsvHead.Length-1, 1));

   //增加明细

  string CsvItem = "";

   foreach(DataRow dr in dt.Rows)
   {
    foreach(DataGridColumn dc in dcc)
    {
     if(dc.HeaderText.Trim() != "" && dc.HeaderText.Trim() != "操作" && dc.Visible == true)
     {
      CsvItem = CsvItem + dr[((BoundColumn) dc).DataField.Trim()].ToString().Trim() + "/t";
     }
    }

    string temp = CsvItem.Remove(CsvItem.Length-1, 1);
    sw.WriteLine(CsvItem.Remove(CsvItem.Length-1, 1));
    CsvItem = "";
   }

   sw.Close();

   HttpRs.AddHeader("Content-Disposition",  "attachment;  filename=" + server.UrlEncode(FileName + ".XLS"));  
   HttpRs.ContentType  =  "application/ms-excel";//  指定返回的是一个不能被客户端读取的流,必须被下载  
   HttpRs.ContentEncoding=System.Text.Encoding.GetEncoding("GB2312");   //设置字符编码
   HttpRs.Write(sw);  //  把文件流发送到客户端  
   HttpRs.End();   
  }
 }
}
 

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值