0

我想导出我的报告,它是 Excel 中的报告部分(基于代码)。我在基于报告的网站上使用 Asp Vb.net 和 Grapecity。在单击按钮时,我调用我的报告或生成报告并将其显示在网络查看器类型“AcrobatReader”上。从该查看器中,我可以下载 PDF 格式的报告。为了生成 Excel 格式的报告,我使用了按钮单击和以下代码。

 Response.ContentType = "application/xls"
                Response.AppendHeader("Content-Disposition", "attachment; filename=LPO.xls")
                Response.ContentEncoding = Encoding.UTF8
                Dim excelExporter As XlsExport = New XlsExport()
                ''Dim report As PolRegSessionRpt = CType((WebViewer1.Report), PolRegSessionRpt)
                Dim report As SectionReport = TryCast(Me.WebViewer1.Report, SectionReport)
                Dim directorypath As String = Trim(txtExlDwnd.Value)
                If Not Directory.Exists(directorypath) Then
                    Directory.CreateDirectory(directorypath)
                End If
                excelExporter.Export(report.Document, Trim(txtExlDwnd.Value) + "LPO.xls")
                Dim tw As New System.IO.StringWriter()
                Dim hw As New HtmlTextWriter(tw)
                Response.Write(tw.ToString)
                Response.[End]()

上面的代码在本地服务器上运行良好,而我在服务器端“目录路径”中更新它,我 将硬代码字符串作为“D:\exceldownload\”。我想要用户可以选择他想要保存 excel 文档的文件夹。

4

2 回答 2

0

由于您使用的是部分报告,因此您需要使用Excel 导出过滤器来导出您的报告。您可以通过在项目中添加对 GrapeCity.ActiveReports.Export.Excel.v11.dll 的引用来访问 Excel 导出过滤器。请参考以下链接中的导出过滤器示例:

https://help.grapecity.com/activereports/webhelp/AR11/webframe.html#ExportingReports.html

葡萄城支持团队

https://www.grapecity.com/support/contact

于 2020-01-02T19:58:53.243 回答
0
 Dim m_stream As New System.IO.MemoryStream()
                Dim rpt As SectionReport = CType(Me.WebViewer1.Report, SectionReport)
                rpt.Run()
                Dim XlsExport1 As New GrapeCity.ActiveReports.Export.Excel.Section.XlsExport
                XlsExport1.MinColumnWidth = 0.5
                XlsExport1.Export(rpt.Document, m_stream)
                m_stream.Position = 0
                Response.Buffer = True
                Response.ClearContent()
                Response.ClearHeaders()
                Response.ContentType = "application/vnd.ms-excel"

                Response.AddHeader("content-disposition", "attachment; filename=DebitNoteAndCreditNote.xls")
                Response.ContentEncoding = Encoding.UTF8
                Response.Cache.SetCacheability(HttpCacheability.NoCache)

                Response.BinaryWrite(m_stream.ToArray())
                HttpContext.Current.ApplicationInstance.CompleteRequest()

我尝试了上面的代码,效果很好。请记住,用于 excel 导入的按钮不需要用于任何其他触发器。

于 2020-01-05T12:58:35.670 回答