JT1992 Ответов: 1

Два вида сетки на одной странице. Как экспортировать оба вида сетки одним нажатием кнопки на один лист excel, используя две вкладки, по одной вкладке для каждого вида сетки!


У меня есть два вида сетки. GridView1 и GridView2 на одной странице. Тем не менее, я хочу экспортировать оба gridviews в excel, имея Gridview1 на одной вкладке и GridView2 на другой вкладке. Возможно ли это с помощью кода, который я реализовал ниже?
Можно ли добавить еще одну вкладку в excel для GridView2?

Protected Sub ExportAsExcel_Click(sender As Object, e As EventArgs) Handles ExportAsExcel.ClickResponse.Clear()
        Response.Buffer = True
        Response.AddHeader("content-disposition", "attachment;filename=Export.xls")
        Response.Charset = ""
            Response.ContentType = "application/vnd.ms-excel"
            Using sw As New StringWriter()
                Dim hw As New HtmlTextWriter(sw)
                GridView1.RenderControl(hw)
                
                Dim style As String = ""
                Response.Write(style)
                Response.Output.Write(sw.ToString())
                Response.Flush()
                Response.End()
            End Using

    End Sub


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

Гугл не помог. Я даже попытался добавить GridView 2 в код, но логически застрял в этом вопросе.

1 Ответов

Рейтинг:
2

manu_dhobale

При нынешнем подходе это невозможно, вместо этого получите ваши два gridview данных в два разных datatable и с помощью OpenXML SDK экспортируйте их

Ссылаться Экспорт данных таблиц данных в несколько таблиц (листов) в ASP.Net с использованием C# и VB.Net[^]

Экспорт в Excel – множественные таблицы на несколько листов[^]


JT1992

таким образом, нет абсолютно никакого способа добавить еще один gridview на другую вкладку, используя мой код выше?

Diecte

Да, нет никакого способа достичь этого с вашим подходом.
Вы видите, что на самом деле создается не файл Excel, а скорее HTML-файл с расширением ".xls".
Взгляните на свой "sw.Значение ToString ()", вы заметите, что это строка, содержащая HTML-таблицу.
Теперь почему этот" трюк " обычно используется, так это потому, что MS Excel умеет читать HTML-файлы, поэтому он также сможет открыть этот файл, однако он выдаст вам предупреждение о том, что формат и расширение файла не совпадают.

Тем не менее, это короткий HTML-файл, и вы не можете определить с его помощью несколько листов, вам нужно будет напишите настоящий файл Excel с помощью VB.NET чтобы достичь этого, например, взгляните на этот образец.

manu_dhobale

Я нашел одну статью, вы можете попробовать ее, проверьте вторую ссылку из обновленного решения