Экспорт веб-сайта Gridview в Excel с помощью Visual Basic

-4

Я пытаюсь экспортировать gridview с веб-сайта в документ excel.

Я должен работать с Visual Basic, и это облом, потому что я уверен, что у меня получится, если это будет С#.

Я продолжаю получать эту ошибку

ScriptResource.axd?.... Не удалось получить ошибку: Sys.WebForms.PageRequestManagerParserErrorException: сообщение, полученное с сервера, невозможно разобрать. в Function.Error $ create [as create] (ScriptResource.axd? at PageRequestManager $ _createPageRequestManagerParserError [as_createPageRequestManagerParserError] (ScriptResource.axd.....

Я попробовал несколько разных скриптов VB для моей кнопки для экспорта этого gridview... Все результаты в той же ошибке синтаксического анализа.

Protected Sub Page_Load(sender As Object, e As EventArgs) Handles Me.Load
If Not IsPostBack Then
Me.BindGrid()
End If
End Sub

Private Sub BindGrid()
Dim strConnString As String = ConfigurationManager.ConnectionStrings("RData").ConnectionString
Using con As New SqlConnection(strConnString)
Using cmd As New SqlCommand("SELECT vWosearch.TypeofWorkOrder FROM vWOSearch")
Using sda As New SqlDataAdapter()
cmd.Connection = con
sda.SelectCommand = cmd
Using dt As New DataTable()
sda.Fill(dt)
wogridviewex.DataSource = dt
wogridviewex.DataBind()
End Using
End Using
End Using
End Using
End Sub

Public Sub Export_Click(ByVal sender As Object, ByVal e As System.EventArgs)

Response.Clear()
Response.Buffer = True
Response.AddHeader("content-disposition", "attachment;filename=GridViewExport.xls")
Response.Charset = ""
Response.ContentType = "application/vnd.ms-excel"
Using sw As New StringWriter()
Dim hw As New HtmlTextWriter(sw)
wogridviewex.RenderControl(hw)
Response.Write(hw)
Response.Output.Write(hw.ToString())
Response.Flush()
HttpContext.Current.ApplicationInstance.CompleteRequest()
End Using

End Sub
Public Overloads Overrides Sub VerifyRenderingInServerForm(ByVal control As Control)
End Sub

И я попробовал это

Public Sub Export_Click(ByVal sender As Object, ByVal e As System.EventArgs)

wogridview.DataBind()
Response.Clear()
Response.Buffer = True
Response.AddHeader("Content-Disposition", "attachment; filename=MyExcelFileName.xls")
Response.ContentType = "application/vnd.openxmlformats-officedocument.spreadsheetml.sheet"
Dim writer As New System.IO.StringWriter()
Dim html As New System.Web.UI.HtmlTextWriter(writer)
wogridview.GridLines = GridLines.Both
wogridview.RenderControl(html)
Response.Write(writer)
Response.Flush()
HttpContext.Current.ApplicationInstance.CompleteRequest()
Response.End()

End Sub
Public Overloads Overrides Sub VerifyRenderingInServerForm(ByVal control As Control)
End Sub

Сетка с ASPX-страницы проста

<asp:UpdatePanel ID="outerupdatepanel" runat="server">
<ContentTemplate>
<asp:Button ID="ExportWorkOrders" runat="server" Text="Export to Excel" onclick="Export_Click"/>

<asp:GridView ID="wogridviewex" runat="server" AllowPaging="False" DataSourceID="SD1">
<Columns>
<asp:BoundField DataField="TypeofWorkOrder" HeaderText="Part Code" />
</Columns>
</asp:GridView>

<asp:SqlDataSource ID="sd1" runat="server" ConnectionString='<%$ ConnectionStrings:here%>'
SelectCommand="blah enter my sql stuff">
</ContentTemplate>
</asp:UpdatePanel>

И теперь я использовал API EPPlus и все еще получаю Parse Error.

   Protected Sub CreateXLSXFile(sender As Object, e As EventArgs) Handles btnGenerateXLSX.Click
GenerateXLSXFile(CreateDataTable())
End Sub

Public Sub GenerateXLSXFile(tbl As DataTable)

Dim excelPackage = New ExcelPackage

Dim excelWorksheet = excelPackage.Workbook.Worksheets.Add("DemoPage")

excelWorksheet.Cells("A1").LoadFromDataTable(tbl, True)

Response.ContentType = "application/vnd.openxmlformats-officedocument.spreadsheetml.sheet"
Response.AddHeader("content-disposition", "attachment;  filename=ExcelDemo.xlsx")
Dim stream As MemoryStream = New MemoryStream(excelPackage.GetAsByteArray())

Response.OutputStream.Write(stream.ToArray(), 0, stream.ToArray().Length)

Response.Flush()

Response.Close()

End Sub

Private Function CreateDataTable() As DataTable

Dim dataTable As New DataTable("DT")
'TODO: INSERT CONNECTION STRING 
Dim DBConnection As New SqlConnection(System.Configuration.ConfigurationManager.ConnectionStrings("Rdata").ConnectionString)

DBConnection.Open()

Dim sql As String = "SELECT * from vwosearch;"
Dim cmd As New SqlCommand(sql, DBConnection)

Dim adaptor = New SqlDataAdapter

adaptor.SelectCommand = cmd
adaptor.Fill(dataTable)
DBConnection.Close()

Return dataTable

End Function

спросил(а) 2017-10-23T19:48:00+03:00 2 года, 8 месяцев назад
0
108

Причиной этого является то, что у меня была

<asp:UpdatePanel ID="outerupdatepanel" runat="server">
<ContentTemplate>

В верхней части и закрытии на Bottom, удаление ASP: updatePanel избавляется от ошибки синтаксического анализа. Все 3 описанные выше методы работают до тех пор, пока вы удаляете фрагменты Updatepanel из aspx.

ответил(а) 2017-10-24T00:12:00+03:00 2 года, 8 месяцев назад
Ваш ответ
Введите минимум 50 символов
Чтобы , пожалуйста,
Выберите тему жалобы:

Другая проблема