Radgrid Excel导出循环

本文关键字:循环 Excel Radgrid | 更新日期: 2023-09-27 17:50:34

我尝试使用radgrid选项将数据导出到excel,它在单个导出上工作良好。但我试着在每个循环中导出,最后一个文件数据只导出。是否可以在循环中导出?

protected void btnexport_Click(object sender, EventArgs e)
{
            string selectedimportfilesid = "";
            IList<RadListBoxItem> collection = ListBoxFileNames.CheckedItems;
            string selectedfilename = "";
            DataTable dtselect = new DataTable();
            foreach (RadListBoxItem item in collection)
            {
                Label filename = (Label)item.FindControl("lblfilename");
                Label Importfileid = (Label)item.FindControl("lblimportfileid");
                selectedfilename = filename.Text;
                selectedimportfilesid = Importfileid.Text;
                dtselect = selectedexportfilelist(selectedimportfilesid);
                testgrid.DataSource = dtselect; 
                testgrid.DataBind();
                testgrid.ExportSettings.IgnorePaging = true;
                testgrid.ExportSettings.FileName = selectedfilename 
                testgrid.ExportSettings.OpenInNewWindow = true;
                testgrid.ExportSettings.Excel.FileExtension = "xls";
                testgrid.MasterTableView.ExportToExcel();
            }
}

Radgrid Excel导出循环

我认为这是不可能的。ExportToExcel()方法旨在将导出的内容发送给最终用户,因此它更改了Response对象(在那里写入文件并添加适当的标头)。因此,重复执行几次只会用最后一次更改响应流中的文件。

也许,你可以:

  1. 用自己的数据生成文件,并存储它们(例如,在临时文件夹:http://www.telerik.com/help/aspnet-ajax/export-infrastructure.html

  2. 压缩它们:http://www.telerik.com/help/aspnet-ajax/ziplibrary-overview.html

  3. 发送到客户端

  4. 删除文件

但是我没有测试过,也没有使用过,所以我不能说它对你的情况是否可行