Renjith_R Ответов: 2

Как удалить первые два столбца из экспорта данных в excel из представления сетки в C#


У меня есть.Сетевое приложение, которое экспортирует данные представления сетки в лист excel. У меня есть две кнопки "Редактировать" и "удалить" внутри сетки. При экспорте данных в excel эти 2 кнопки также появляются. Можем ли мы удалить эти кнопки и сохранить только значения в excel?Пожалуйста, помогите.

Что я уже пробовал:

private void ExportToExcel()
{
    Response.Clear();
    Response.Buffer = true;
    Response.AddHeader("content-disposition", "attachment;filename=GridViewExport.xls");
    Response.Charset = "";
    Response.ContentType = "application/vnd.ms-excel";
    using (StringWriter sw = new StringWriter())
    {
        HtmlTextWriter hw = new HtmlTextWriter(sw);

        //To Export all pages
        grdChangeRequirement.AllowPaging = false;
        this.ShowData();

        grdChangeRequirement.HeaderRow.BackColor = Color.White;
        foreach (TableCell cell in grdChangeRequirement.HeaderRow.Cells)
        {
            cell.BackColor = grdChangeRequirement.HeaderStyle.BackColor;
        }
        foreach (GridViewRow row in grdChangeRequirement.Rows)
        {
            row.BackColor = Color.White;
            foreach (TableCell cell in row.Cells)
            {
                if (row.RowIndex % 2 == 0)
                {
                    //cell.BackColor = grdChangeRequirement.AlternatingRowStyle.BackColor;
                    cell.BackColor = grdChangeRequirement.RowStyle.BackColor;
                }
                else
                {
                    cell.BackColor = grdChangeRequirement.RowStyle.BackColor;
                }
                cell.CssClass = "textmode";
            }
        }

        grdChangeRequirement.RenderControl(hw);

        //style to format numbers to string
        string style = @"<style> .textmode { } </style>";
        Response.Write(style);
        Response.Output.Write(sw.ToString());
        Response.Flush();
        Response.End();
    }
}

Justifyed

// Создайте экземпляр нового gridview, удалите первые два столбца и экспортируйте его.
Практическое руководство гв = новый элемент();
DataTable dt = copyTheDataTableToThisOne;
gv = это.YourGridViewname;
гв.Источник данных = ДТ;
гв.Столбцы.Удалить ("NameOf1stColumnToRemove");
гв.Столбцы.Удалить ("NameOf2ndColumnToRemove");

2 Ответов

Рейтинг:
2

Karthik_Mahalingam

проверить это Экспорт Gridview в excel скрыть столбцы[^]


Рейтинг:
1

eddieangel

Возможно, вам лучше использовать цикл for вместо foreach, чтобы вы могли установить начальный индекс своих столбцов. Код может нуждаться в настройке, но это общая идея.

for (int i = 2; i < row.Cells.Count; i++)
                {
                    if (row.RowIndex % 2 == 0)
                    {
                        //cell.BackColor = grdChangeRequirement.AlternatingRowStyle.BackColor;
                        cell.BackColor = grdChangeRequirement.RowStyle.BackColor;
                    }
                    else
                    {
                        cell.BackColor = grdChangeRequirement.RowStyle.BackColor;
                    }
                    cell.CssClass = "textmode";
                }