Jasper reports 为什么csv导出中会有额外的逗号?

Jasper reports 为什么csv导出中会有额外的逗号?,jasper-reports,export-to-csv,Jasper Reports,Export To Csv,我已经编写了相同的jrxml来导出pdf和csv格式的报告。 pdf报告很好,但对于csv报告,它在一行中插入了额外的逗号 以下是csv报告输出的示例: TXN ID,,TXN TIME,,,AGENT,DP USER,USECASE,AMOUNT,,COMMN 10000799,,7/27/11 7:58 PM,,,Headquarter,Headquarter,Standard In,0 EUR,,0 可以看出,txn id后面有两个逗号,txn time后面有三个逗号 你知道我怎样才能避

我已经编写了相同的jrxml来导出pdf和csv格式的报告。 pdf报告很好,但对于csv报告,它在一行中插入了额外的逗号

以下是csv报告输出的示例:

TXN ID,,TXN TIME,,,AGENT,DP USER,USECASE,AMOUNT,,COMMN
10000799,,7/27/11 7:58 PM,,,Headquarter,Headquarter,Standard In,0 EUR,,0
可以看出,txn id后面有两个逗号,txn time后面有三个逗号

你知道我怎样才能避免这些额外的逗号吗

下面是XML的一部分

<staticText>
<reportElement key="element-91" x="0" y="27" width="60" height="16" forecolor="#FFFFFF"/>
<box leftPadding="2" rightPadding="2">
    <topPen lineWidth="0.5" lineStyle="Solid" lineColor="#000000"/>
    <leftPen lineWidth="0.5" lineStyle="Solid" lineColor="#000000"/>
    <bottomPen lineWidth="0.5" lineStyle="Solid" lineColor="#000000"/>
    <rightPen lineWidth="0.5" lineStyle="Solid" lineColor="#000000"/>
</box>
<textElement textAlignment="Center" verticalAlignment="Middle">
    <font fontName="" size="12"/>
</textElement>
<text><![CDATA[TXN ID]]></text>
</staticText>
<staticText>
<reportElement key="element-90" x="60" y="27" width="65" height="16" forecolor="#FFFFFF"/>
<box leftPadding="2" rightPadding="2">
    <topPen lineWidth="0.5" lineStyle="Solid" lineColor="#000000"/>
    <leftPen lineWidth="0.5" lineStyle="Solid" lineColor="#000000"/>
    <bottomPen lineWidth="0.5" lineStyle="Solid" lineColor="#000000"/>
    <rightPen lineWidth="0.5" lineStyle="Solid" lineColor="#000000"/>
</box>
<textElement textAlignment="Center" verticalAlignment="Middle">
    <font fontName="" size="12"/>
</textElement>
<text><![CDATA[TXN TIME]]></text>
</staticText>


这可能与报告中的图形布局有关。在TXN ID和TXN时间元素之间,在报告设计中可能存在一些水平空间,而元素代理和DP用户可能相邻,没有水平间隙。CSV导出器尝试创建类似于报表设计的布局,至少在电子表格应用程序中查看时是这样。

这可能与报表中的图形布局有关。在TXN ID和TXN时间元素之间,在报告设计中可能存在一些水平空间,而元素代理和DP用户可能相邻,没有水平间隙。CSV导出器尝试创建类似于报表设计的布局,至少在电子表格应用程序中查看时是这样。

我也遇到过类似的问题,问题最终证明是由designer视图中字段的垂直未对齐引起的。解决方案是确保所有字段元素在designer视图中从相同的垂直位置/标高开始(即,将所有字段的属性“top”设置为相同,例如top=0)

  • 米德斯塔

我也遇到了类似的问题,问题最终证明是由designer视图中字段的垂直错位引起的。解决方案是确保所有字段元素在designer视图中从相同的垂直位置/标高开始(即,将所有字段的属性“top”设置为相同,例如top=0)

  • 米德斯塔

为CSV导出设计报告:

我添加了下一个提示: 检查是否启用了“打印重复值”


我希望这是有用的。

为CSV导出设计报告:

我添加了下一个提示: 检查是否启用了“打印重复值”


我希望这是有用的。

在遇到相同类型的问题时发现了这一点,以便了解我的报告是什么样的:

ColumnHeader [Field1, Field2, Field3]
Detail Band  [List]
我的名单是:

[field1|field2|field3]
我也看到了同样的问题:

  • 没有标题的CSV看起来很棒
  • 带有标题的CSV在字段之间添加了额外的逗号
调试后,我在JRCsvExporter的第232行发现

if (xCuts.getCut(x).isCutNotEmpty())
是真的,这就是为什么有额外的逗号。我不完全确定CutInfo(s)来自哪里,也没有花任何时间调试它;但它们确实发挥了巨大的作用。我发现您需要确保CSV中的所有列的大小都是准确的(不仅仅是数量)


经过一些艰苦的手动移动后,我发现列表中的一列1比我的列标题列1的大小小了1个像素。手动确保标题的每一列与列表中的列的宽度相匹配后,报表导出时不使用额外的逗号。

在遇到相同类型的问题时发现了这一点,以便了解我的报表的外观:

ColumnHeader [Field1, Field2, Field3]
Detail Band  [List]
我的名单是:

[field1|field2|field3]
我也看到了同样的问题:

  • 没有标题的CSV看起来很棒
  • 带有标题的CSV在字段之间添加了额外的逗号
调试后,我在JRCsvExporter的第232行发现

if (xCuts.getCut(x).isCutNotEmpty())
是真的,这就是为什么有额外的逗号。我不完全确定CutInfo(s)来自哪里,也没有花任何时间调试它;但它们确实发挥了巨大的作用。我发现您需要确保CSV中的所有列的大小都是准确的(不仅仅是数量)


经过一些艰苦的手动移动后,我发现列表中的一列1比我的列标题列1的大小小了1个像素。手动确保标题的每一列与列表中的列的宽度匹配后,导出的报表没有额外的逗号。

解决方案是将报表级别上的参数
isIgnorePagination
设置为
true

解决方案是将报表级别上的参数
isIgnorePagination
设置为
true

txn id和txn时间元素之间没有额外的空间。我已经对问题进行了编辑,以包括部分XML。给定的XML摘录生成以下CSV导出:
TXN ID,TXN TIME
。逗号可能是由报告中与txn id和txn时间不在同一x位置的其他(文本)元素引起的吗?txn id和txn时间元素之间没有额外的空间。我已经对问题进行了编辑,以包括部分XML。给定的XML摘录生成以下CSV导出:
TXN ID,TXN TIME
。逗号可能是由报告中与txn id和txn时间不在同一x位置的其他(文本)元素引起的吗?