WebサイトからグリッドビューをExcelドキュメントにエクスポートしようとしています。WebサイトのグリッドビューをVisual BasicでExcelにエクスポート
私はVisual Basicで作業する必要があります。これはC#の場合は煙が出ていると確信しているので、それはバマーです。
私はこのエラー私はGridViewのをエクスポートするために私のボタンのいくつかの異なるVBスクリプトを試してみました
ScriptResource.axd?.... Uncaught Error: Sys.WebForms.PageRequestManagerParserErrorException: The message received from the server could not be parsed. at Function.Error$create [as create] (ScriptResource.axd? at PageRequestManager$_createPageRequestManagerParserError [as _createPageRequestManagerParserError] (ScriptResource.axd.....
...同じ構文解析エラーのすべての結果を得続けます。
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
そして、アイブ氏は、ASPXページからのGridViewは
<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>
シンプルで、今私はEPPlusのAPIを使用して、まだ解析エラーを取得し、この1
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
を試してみました。 UpdatePanelは、解析エラーを取り除く:この発生したため
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
たとえば、[EPPlus](http://stackoverflow.com/documentation/epplus/drafts/98280)のようなExcelファイルの作成に特化したライブラリの使用を開始します。あなたが今やっていることは、拡張子が.xlsのHTMLページを作成することだけです。 – VDWWD
私はグリッドビューをとり、それをExcelに変えるために特別なライブラリが必要とは思わないでしょう。私はEPPplus用のnuegetをインストールしましたが、girdviewをエクセルにエクスポートするVBの例はありません。私はC#の例をたくさん見つけていますが、私はVBで動くものが必要です。 – JKB
ユーザーがこのグリッドビューで行うことは、データを選択したデータセットにフィルタリングしてエクスポートすることです。ボスは、Excelのようにコピーして貼り付けることは望ましくありませんが、私はグリッドビューをエクスポートしないで動作する必要があります。私の頭は、グリッドビューをExcelにエクスポートしないように指示していますが、代わりにクエリの結果をExcelにエクスポートします。 – JKB