Вытягивание столбца и текст заголовка с автогенерированными столбцами в виде сетки

Я переписываю одну из функций в основной библиотеке моей группы, и одна из этих функций заключается в том, чтобы экспортировать Gridview в лист распространения Excel. У меня уже есть функция для экспорта DataSet в Excel, поэтому все, что мне нужно сделать, это преобразовать gridview в DataSet. Нет проблем? Все было хорошо, пока я не обнаружил, что столбцы объекта GridView собираются пустым, а текст заголовка имеет значение null при использовании автоматически сгенерированных столбцов.

Я знаю, что MS заявила, что вы сдаете, как gridview отображает эти данные, но я не могу найти ничего, что показывает, как я могу захватить коллекцию столбцов. Я бы хотел, чтобы эта Библиотека была максимально гибкой.

Вот моя функция, поскольку она стоит сейчас …

public static MemoryStream GridViewToXLSX(GridView Gridview, Options options = null) { DataSet ds = new DataSet(); DataTable dt = new DataTable(); for (int i = 0; i < Gridview.Columns.Count; i++) { dt.Columns.Add(Gridview.Columns[i].HeaderText); } foreach (GridViewRow row in Gridview.Rows) { DataRow dr = dt.NewRow(); for (int j = 0; j < Gridview.Columns.Count; j++) { dr[Gridview.Columns[j].HeaderText] = row.Cells[j].Text; } dt.Rows.Add(dr); } ds.Tables.Add(dt); return DataSetToXLSX(ds, options); } 

В качестве альтернативы вы можете попробовать этот пример кода, вместо Column.count, вы можете подсчитать количество ячеек в HeaderRow GridView.

Это всего лишь образец, а не фактический код

 GridViewRow headerRow = gv.HeaderRow; int count = headerRow.Cells.Count 
Interesting Posts
Давайте будем гением компьютера.