为什么我的交叉表在 Excel 中被切断?

2024-01-18

我正在尝试使用 BIRT 创建 Excel 电子表格。该电子表格是将两个对象映射在一起的交叉表。行数和列数是根据 MySQL 数据库中的值动态变化的。目前我已经实现了 PDF 输出报告。现在,我正在尝试创建 Excel 报告的第二个版本。

我已经复制了报告设计并开始调整它以与 Excel 一起使用。一切看起来都不错,但标题后面只显示前 3 列。所有行均正确显示。

我已经尝试过以下方法:

  • 我尝试在页面上的每个元素上将“溢出”设置为“可见”。这没有效果。
  • 我尝试将母版页的高度和宽度设置为大得离谱。所有信息都正确显示,但我希望找到一个没有硬编码值的解决方案。将来数据宽度可能会再次超过我的任意值并被截断。

我在以下几个方面受到限制:

  • 我无法切换报告引擎(我必须使用 BIRT)。
  • 我无法切换 Excel 发射器。

这篇博客文章提到了我的问题:http://www.spudsoft.co.uk/2011/10/the-spudsoft-birt-excel-emitters/ http://www.spudsoft.co.uk/2011/10/the-spudsoft-birt-excel-emitters/但除了发射器开关之外,它没有提供其他解决方案。具体引用是“这些文件还存在我无法解决的页面布局问题(特别是宽的报告将被切断)。”

除了一篇博客文章之外,我的 googlefu 也让我失望了。任何帮助表示赞赏!谢谢你!


这里有两个问题。第一个比较简单,第二个比较复杂。

1.为什么我的Excel中的交叉表被切断了?

2.如何在运行时根据报表的列数动态调整母版页宽度?

A1:交叉选项卡被切断,因为列宽已手动设置,其中列数将扩展超过母版页的设置宽度。每当您获取报表设计元素并进行调整时,BIRT 都会假设您知道自己在做什么,并且不会覆盖您的设置。

解决方案是重新创建报表元素(表或交叉表),而不是手动调整任何大小。当在 HTML 或 Excel 中运行时,所有列将自动设置为以可用的母版页宽度显示。

BIRT 4.2 交叉表、具有 2 英寸母版页宽度和 30 列的报表项的屏幕截图

A2:这并不容易,我现在不会提供答案。我将指出解决方案并确定一些障碍。此问题的有效解决方案必须包括使用示例数据库的有效解决方案。

(从 BIRT 4.2.1 开始)

挑战1 - 设置母版页宽度BIRT 报告脚本 http://www.eclipse.org/birt/phoenix/deploy/reportScripting.php在报告表或交叉表项目完成之前的事件中。您不能简单地计算报告中有多少列;

如果你想计算列数——

报告设计初始化

 columnCount = 0;

交叉表,onCreate

 columnCount ++;

在我的研究中,建议有两种路径用于在创建交叉表项之前对列进行计数。任何一个

  1. 运行beforeFactory中的数据集(这意味着对数据库进行两次查询,一次用于计数,一次用于报告),然后进行计数并使用它。

  2. 计算初始查询中的值并将其收集到数据集中 onFetch。

我遵循使用计算列的数据集 onFetch 选项,但没有使其正常工作。

挑战2 - 母版页的宽度属性必须在报表设计之前或渲染之前设置。 beforeFactory 是最常推荐的。此外,母版页的宽度属性仅在母版页“类型”设置为“自定义”时才可用,在我的尝试中,我在属性编辑器中手动设置此属性General.

将值从 onFetch 传递到 beforeFactory 必须使用 PersistentGlobalVariable 来完成,它只能传递字符串,而不能传递整数。我发现了各种方法都行不通。即使在 PersistentGlobalVariable 中传递“12in”也无法调整母版页宽度

beforeFactory 中的这些代码中的任何一个都会调整母版页宽度(当 Type = Custom 时)

传递价值

reportContext.getReportRunnable().designHandle.getDesignHandle().findMasterPage("Simple MasterPage").setProperty("width","12in");

计算一个值并传递它

increaseWidth = 20;
reportContext.getReportRunnable().designHandle.getDesignHandle().findMasterPage( "Simple MasterPage").setProperty("width",((2+increaseWidth)+"in"));

最后,我无法找到或创建一个功能报告来调整在报告运行时生成的数字列上传递的母版页宽度。我认为这是可能的,但这样做超出了我目前的能力。

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

为什么我的交叉表在 Excel 中被切断? 的相关文章

  • 如何计算 COUNTIF 但仅计算唯一值?

    我有一个数据集 其中有一列包含参考文献 参考文献始终遵循相同的格式 1 XXX YYY XXX 始终为 3 个字母 YYY 始终是一个数字 每个XXX都会有YYY 001 如果同一个XXX有多个类型 就会有YYY 002 以此类推 我想知道
  • 使用 MemoryStream 创建 Open XML 电子表格时的 Excel 和“不可读内容”

    使用 Open XML SDK v2 0 创建 Excel 电子表格时 我们的 Excel 输出最初可以成功运行几个月 最近Excel 所有版本 开始抱怨 Excel在 zot xlsx 中发现不可读的内容 是否要恢复此工作簿的内容 我们正
  • 即使 Excel 中存在多条记录,CopyFromRecordset 也仅复制并粘贴第一行

    我有一个包含表格数据的 Excel 工作表 strSQL SELECT S FIELD NAME1 S FIELD NAME2 S FIELD NAME3 from SourceData A1 IV6 S Dim cn as ADODB C
  • 将包含换行符的文本文件导入到 Excel 中

    我有一个纯文本文件 如下所示 some text containing line breaks 我正在尝试说话excel 2004 Mac v 11 5 正确打开此文件 我希望只看到一个单元格 A1 包含上述所有内容 不带引号 但可惜的是
  • 选择在 Excel 宏(VBA 中的范围对象)中具有值的列

    如何修改 VBA 中的这一行以仅选择具有值的列 Set rng Range A1 Range A65536 End xlUp SpecialCells xlCellTypeVisible 我不认为我做的事情是正确的CountLarge财产是
  • 如何使用 Excel Interop 获取筛选行的范围?

    我正在为我的项目使用 Excel Interop 程序集 如果我想使用自动过滤器 那么可以使用 sheet UsedRange AutoFilter 1 SheetNames 1 Microsoft Office Interop Excel
  • 如何禁用 openpyxl 表中的自动过滤器?

    当我使用 openpyxl 创建表时 它默认在所有列上添加自动过滤器 使用中提供的示例可以重现该行为文档 https openpyxl readthedocs io en stable worksheet tables html 我想显示没
  • 字典、集合和数组的比较

    我正在尝试找出字典与集合和数组相比的相对优点和功能 我发现了一篇很棒的文章here http www experts exchange com articles 3391 Using the Dictionary Class in VBA
  • VBA根据单元格的值是否为零显示/隐藏行

    我有一个 Excel 工作表 我想根据另一个单元格中的值隐藏或取消隐藏某些行 简而言之 整个事情应该取决于单元格中的值C2 D2 E2 If C2 is blank我想rows 31 to 40被隐藏 如果是的话不为空 他们需要是visib
  • Apache poi setformula 不适用于 SE

    我正在尝试在 XSSFCell With POI 中设置公式 Cell setFormula SE D87 0 D80 D87 错误是 名称 SE 在当前工作簿中完全未知 Why 看起来您正在尝试创建一个IF公式 我发现这一页 http w
  • 我可以用文本框设置变量名称吗? excel

    我可以使用 TextBox Vba Excel 设置变量的名称吗 我必须以在文本框中写入组名称并单击命令按钮的方式输入新的产品组 代码必须从文本框中获取字符串 并将该字符串设置为新创建的数组的名称 我只想在运行时创建一个新变量 或数组 据信
  • 复制一张工作表上的静态范围,然后根据单元格中的单个值粘贴到另一张工作表中的动态范围

    我对这个问题分为三个部分 我在 Sheet1 A1 中有一个带有周数的单元格 我在 Sheet1 B1 F1 中有一个需要复制的静态范围 然后 我需要将该值粘贴到 Sheet2 中的动态范围中 偏移量为行的周数 这是我正在为我经常使用的工作
  • EPPlus Excel 行高不一致

    我已经使用 EPPlus 生成了一个 excel 文件 在 MS Office 2007 中一切似乎都很完美 但客户端使用的是 MS Office 2010 2013 并且在第 29 行之后未设置行高 这是一个非常奇怪的问题 我已经尝试了
  • 在组合框中显示可见工作表

    您好 我有以下代码来在组合框中显示工作表 创建工作表后 工作表会自动添加到列表中 我不希望隐藏的工作表在保管箱中可见 我怎么做 Option Explicit Private Sub ComboBox1 Change If ComboBox
  • 读取R中打开的Excel文件

    有没有办法将打开的Excel文件读入R 当Excel中打开一个excel文件时 Excel会对文件加锁 比如R中的read方法无法访问该文件 你能绕过这个锁吗 Thanks 编辑 这发生在带有原始 Excel 的 Windows 下 发生错
  • 无法摆脱脚本中的硬编码延迟

    我用 vba 结合 selenium 编写了一个脚本来解析网页中可用的所有公司名称 该网页启用了延迟加载方法 因此每个滚动中只有 20 个链接可见 如果我滚动 2 次 则可见链接数为 40 个 依此类推 该网页中有 1000 个可用链接 我
  • 当使用公式生成超链接时,VBA 打开 Excel 超链接不起作用

    使用公式生成的 Excel 超链接似乎存在错误 我使用的是 Excel 2010 我有一个电子表格 其中的单元格包含 URL 我的目标是执行以下两件事 将这些单元格变成超链接 创建一个键盘快捷键来打开这些超链接 这样我就不必使用鼠标了 为了
  • SpreadsheetML 文件扩展名被 IE 和 FF 更改 - 内容类型错误?

    我正在 PHP 中生成 SpreadsheetML 文件 当用户下载文件并保存时 默认情况下文件会另存为 Report xml 并在 Excel 中打开 但是 如果选择在 Excel 中打开文件而不是保存文件 则文件名将更改为 Report
  • Java Microsoft Excel API [关闭]

    就目前情况而言 这个问题不太适合我们的问答形式 我们希望答案得到事实 参考资料或专业知识的支持 但这个问题可能会引发辩论 争论 民意调查或扩展讨论 如果您觉得这个问题可以改进并可能重新开放 访问帮助中心 help reopen questi
  • 使用宏打开受信任文档或启用宏时 Excel 崩溃

    正如标题所示 我无法使用宏打开受信任的文档 Excel 立即崩溃 制作文档的副本允许其打开 因为该副本不受信任 并且我可以检查 VB 编辑器中的宏 但启用宏会导致另一次崩溃 为什么会发生这种情况以及我可以采取什么措施来解决它 我今天遇到了类

随机推荐

  • CSS3 / HTML5 的盒子阴影不均匀?

    我正在尝试为网站创建不均匀的阴影效果 请参阅下面的示例来了解我需要实现的目标 不幸的是 我不认为这可以用 CSS3 来完成 据我所知 box shadow 属性只能用于创建均匀分布的阴影 然而 我对 CSS3 HTML5 的了解并不多 所以
  • 为什么我的 public void Constructor {} 无法编译?

    我有一项作业 要求银行帐户能够从支票和储蓄帐户转移资金 交易存储在 ArrayList 中 并由用户指定何时转移资金 用于支票和储蓄的银行帐户类工作正常 但我创建的 TransferService 类在 NetBeans 中无法正确编译 这
  • 我的 Mac OS X Mountain Lion 上有太多蟒蛇

    我不久前更新到了 Mountain Lion 之前使用过 python 现在我的电脑上安装了 8 个 是的 8 个版本的 python ls l System Library Frameworks Python framework Vers
  • 捕获Using块的目标对象的构造函数中抛出的异常

    using SomeClass x new SomeClass c temp test txt 在 using 块内 一切正常 可以正常处理异常 但是如果构造函数SomeClass可以抛出异常吗 将您的使用放入 try catch fe 中
  • 如何在没有数据库的情况下制作自定义表单 - DJANGO

    所以我想上传文件 但只发送到本地存储而不是数据库 但我不知道如何制作自定义表格 突然 这是我的 models py from django db import models class Audio store models Model re
  • 删除 SQL 中的每个备用行

    我需要清理一个包含三列的表 ID 唯一标识符 观察值 nvarchar 和时间戳 日期时间偏移 内容由两个传感器以 1 小时的间隔生成 并且两个传感器的 Observation 值相同 我的想法是做一个 SELECT 查询 例如 SELEC
  • 不允许任何人访问目录 .htaccess

    它可能很简单 但我找不到它 我想制作一个 htaccess 文件 这样任何人都无法进入该文件夹 除了服务器上的 php 之外 有谁知道代码行吗 谢谢 马蒂 You want Deny from all
  • 不同包中的类名相同

    同一类可以存在于多个包中吗 换句话说 我可以有Foo java上课于com test package1 and com test package2 Update 现在我从包 1 中复制了类并放入包 2 中 现在我正在创建该类的实例 我希望该
  • C# Regex.Split:删除空结果

    我正在开发一个应用程序 该应用程序导入数千行 其中每行的格式如下 9070183020 04 02 2011 107222 M S SUNNY MEDICOS GHAZIABAD 32 768 00 我正在使用以下Regex将行拆分为我需要
  • Apache2 Django NameError:名称“TypeError”未定义

    我试图通过 apache2 在 VPS 上运行 django 应用程序 但我在网站错误文件中收到以下内容 也是 400 错误请求 Exception ignored in
  • 可以使用 Python 标准库完成结构化日志记录吗?

    我最近读到了有关结构化日志记录的内容 here https stackify com what is structured logging and why developers need it 这个想法似乎不是通过将简单的字符串作为一行附加
  • Chromium 嵌入式框架:使用“ExecuteFunctionWithContext”时创建对象失败

    Overview 我在 Delphi 2009 上使用 chromium 嵌入式框架 cef 它是最新版本 Error 我可以用ExecuteFunctionWithContext成功执行 JavaScript 回调例程 我可以为其提供参数
  • 在 Glassfish 部署期间,WEB-INF/lib 中的 JAR 库未添加到类路径中

    尽管我已经使用 Java 几年了 但我还是 Glassfish 和 Java EE 的新手 我继承了一个停滞的项目 现在我需要重新开始开发 我正在尝试按原样部署 Web 应用程序 以查看哪些内容有效以及哪些内容需要注意 虽然实现各种功能的代
  • 如何防止(引导)固定顶部导航在移动设备上缩放

    在使用Bootstrap 3的固定顶部导航时 我注意到当用户在移动设备上使用原生缩放时 顶部导航也变得非常大 这会导致非常糟糕的用户体验 导航模糊了大部分内容并最终自行损坏 如以下示例所示 这个问题可以在网上看到http www explo
  • 如何暂停 android.speech.tts.TextToSpeech?

    我正在使用 Android TTS 播放文本 android speech tts TextToSpeech I use TextToSpeech speak说话和 stop停止 有没有办法也暂停文本 据我所知 TTS SDK 没有任何暂停
  • 如何仅修改react .map函数中的一个元素?

    我对反应有点陌生 并且对在这里做什么有点迷失 我正在从 firebase 加载数据并使用 map 函数渲染该对象的 props 以列出页面上的所有 评论 效果很好 我还想调用一个组件 该组件允许用户回复单个评论 即地图中的一个特定元素 但正
  • JPA:从属性创建 EntityManagerFactory

    我在 JAR 项目中使用 JPA 并使用 persistence xml 来设置我的 EntityManager 但由于 persistence xml 在构建后位于 JAR 内 因此用户随后更改设置非常复杂 因此 我正在寻找一种解决方案
  • C语言中数字之间插入空格

    我该如何获取像这样的数字123456并将其打印为1 2 3 4 5 6 最简单的方法 尽管不是最快的 可能是首先sprintf http linux die net man 3 sprintf将数字存入字符串缓冲区 然后循环遍历该缓冲区pr
  • 如何在 sbt 中有条件地调用任务?

    Say taskA是一项繁重的任务 只有在启用它并且taskAEnabled是对应的设置键 一个天真的方法是 val taskAConditional Def task taskAEnabled taskA map taskAEnabled
  • 为什么我的交叉表在 Excel 中被切断?

    我正在尝试使用 BIRT 创建 Excel 电子表格 该电子表格是将两个对象映射在一起的交叉表 行数和列数是根据 MySQL 数据库中的值动态变化的 目前我已经实现了 PDF 输出报告 现在 我正在尝试创建 Excel 报告的第二个版本 我