将Crystal报表导出到Excel(空行)

时间:2014-11-26 14:30:42

标签: excel crystal-reports

我正在尝试将报告导出为ex​​cel。当我将报表导出到Excel时,我在每个细节部分之间得到空行。我假设这是因为我有一个正常文本元素形式的上下文菜单,它覆盖了" normal"文本元素。

有人对如何阻止空行发生有任何建议吗?是否可以仅在将文本元素导出到Excel时禁止它?

谢谢!

3 个答案:

答案 0 :(得分:1)

尝试使其紧凑。

每个对象之间应该没有空格。您应该将同一行上的每个对象设置为具有相同的高度,并且列上的每个对象具有相同的宽度。

当对象之间有空格时,它将在Excel上创建一个单元格。

答案 1 :(得分:0)

Ken Hamady有2篇文章可能有帮助: http://kenhamady.com/cru/archives/231 http://www.kenhamady.com/news0506.shtml(滚动到页面底部)

如果您使用表格数据,另一个选项是使用此视频中显示的报告扩展程序:https://www.youtube.com/watch?v=3hk6FJ1dvb4 此方法将使用Crystal报表作为数据源,并将以更好的格式从网格中导出数据。该视频使用的是第三方工具,但它是免费的 - http://www.r-tag.com/Pages/CommunityEdition.aspx

答案 2 :(得分:0)

使用此代码:

Public Shared Sub ExportDataSetToExcel(ByVal ds As DataTable, ByVal filename As String)
        Dim response As HttpResponse = HttpContext.Current.Response
        response.Clear()
        response.Buffer = True
        response.Charset = ""
        response.ContentType = "application/vnd.ms-excel"
          Using sw As New StringWriter()
            Using htw As New HtmlTextWriter(sw)
                Dim dg As New DataGrid()
                dg.DataSource = ds
                dg.DataBind()
                dg.RenderControl(htw)
                response.Charset = "UTF-8"
                response.ContentEncoding = System.Text.Encoding.UTF8
                response.BinaryWrite(System.Text.Encoding.UTF8.GetPreamble())
                response.Output.Write(sw.ToString())
                response.[End]()
            End Using
        End Using
    End Sub
相关问题