3

I use a birt in my grails application. Currently exporting to excel works, but if let say:

  • you have 100 records

it will:

  • show 40 records in one sheet and you will end up having 3 sheets in your excel file.

I wanted to know how I can import them in one single sheet to:

  • display all the 100 records.

I have Googled it. I can't come up with a clear solution to my IDEAS.


I use the following Code in my Birt:

def IRenderOption options = null
case ReportTypeEnum.XML:
    //TODO:
    options = new RenderOption(outputFormat: "xml")
    break

The emitter I use is :

options = new EXCELRenderOption(outputFormat: "xls")
optiions.setEmitterID("uk.co.spudsoft.birt.emitters.excel.XlsEmitter") 
println "Report:"+ options.isEnableMultipleSheet() 

Does anybody have any idea? Example : sAMPLE rEPORT ON EXCEL

4

4 回答 4

3

解决方案不是修改某些代码或更改发射器,而是简单如下所示真正的挑战可能是通过检测报告类型在运行时设置此属性,因为您可能不会将所有分页内容应用于所有页面...

在此处输入图像描述

谢谢你,比尼。请参阅此网络博客,其中包含所有正确答案。 http://www.biny08.blogspot.com/2013/06/spudsoft-excel-emitter-single-sheet.html#more

使分页间隔 = 0(无限)或您的客户价值

并将重复标题设置为 false

完毕!你会在一张纸上看到你所有的记录。太棒了:)!

于 2013-07-09T14:51:21.997 回答
2

这个问题我找了好几个月的答案,终于自己找到了:不用写代码,想想这个:

XLSX 导出与 TOC 或表的第一组中的根项目一样多。如果只有一件物品,您将只得到一张。

  • 在您的设计中,在主表中创建一个空组,具有以下规范:
  • 名称:根
  • group on: null(在字段中仅输入这 4 个字母)
  • 目录:“客户列表”(您可能想要的任何文本)如果您有其他组没问题,只需将这个放在其他组之前(剪切/粘贴)

然后你会得到一个 TOC(目录)作为第一级,你的组只包含你定义的文本。

这样,您还可以保留原始页面的 html 视图或 pdf 导出,这在您使用 TOC 时很有用。想象一下拥有 100 000 个项目的人口,您可以创建 3 个组: - 一个带有 TOC 文本的空组,如“人口” - 第二个仅包含名称的第一个字母(您应该得到 26 个项目) - 最后一个包含人名

然后,您将只需要管理每个子组 100000/26=3846 个项目。

对于那些确实想要 excel 表的人,请记住:第一组项目数等于 excel 表数....

于 2016-05-05T20:57:52.970 回答
1

点击数据集。打开同一数据集的属性编辑器。转到分页选项并将分页间隔设置为最大数量。我试过了,2147483647 是 BIRT 设计器的最大数量。

设置选项如下。

Before = Avoid,
Inside = Avoid,
After  = Always,
Master Page = None.

如果您希望在 2147483647 行之后数据溢出到 Excel 中的下一个工作表时标题可用,请勾选重复标题。

附上截图供参考。

点击打开截图

于 2018-03-28T06:23:51.140 回答
0

这对我有用

  1. 选择整个表格
  2. 转到属性
  3. 选择分页符
  4. 将分页间隔设置为 0

完毕。

于 2020-09-11T15:56:54.853 回答