Как экспортировать в CSV без повторения верхнего и Нижнего колонтитулов?
Я хочу экспортировать в CSV с верхним и Нижним колонтитулами только один раз
The current output:
Name Address Hobby
AAA US XXXXX
BBB UK XXXXX
(Footer)
Name Address Hobby
CCC ID XXXXX
DDD CC XXXXX
(Footer)
Name Address Hobby
EEE SA XXXXX
FFF ZM XXXXX
(Footer)
The desired output:
Name Address Hobby
AAA US XXXXX
BBB UK XXXXX
CCC ID XXXXX
DDD CC XXXXX
EEE SA XXXXX
FFF ZM XXXXX
(Footer)
Итак, как мне заставить верхний и Нижний колонтитулы отображаться только один раз ?
Редактировать:
Нижний колонтитул выглядит как
Версия: 1.0.0
AcademicProgramBusinessEntityCentredoma Время Выполнения: 00: 00: 00.00
/NWU / StudentInformation / AcademicProgramDevelopment Build: v1. 0. 9-Dev
2 ответа:
Вы можете использовать сеть.sf.Джаспер докладывает.экспорт.{формат}.исключать.происхождение.{суффикс}.{arbitrary_name} (см. http://jasperreports.sourceforge.net/config.reference.html Страница для деталей) свойство для исключения полос (заголовок страницы и нижний колонтитул страницы в вашем случае) для экспортера.
Пример:
Входные данные, csv-файл (источник данных):
AAA,US,XXXXX BBB,UK,XXXXX CCC,ID,XXXXX DDD,CC,XXXXX EEE,SA,XXXXX FFF,ZM,XXXXX
Файл jrxml :
<?xml version="1.0" encoding="UTF-8"?> <jasperReport xmlns="http://jasperreports.sourceforge.net/jasperreports" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://jasperreports.sourceforge.net/jasperreports http://jasperreports.sourceforge.net/xsd/jasperreport.xsd" name="exclude_band_for_csv" language="groovy" pageWidth="595" pageHeight="120" columnWidth="555" leftMargin="20" rightMargin="20" topMargin="0" bottomMargin="0" uuid="daaa60dc-b91b-4e9b-bbc0-6189af985ef9"> <property name="net.sf.jasperreports.export.csv.exclude.origin.band.1" value="pageHeader"/> <property name="net.sf.jasperreports.export.csv.exclude.origin.band.2" value="pageFooter"/> <queryString> <![CDATA[]]> </queryString> <field name="Name" class="java.lang.String"/> <field name="Address" class="java.lang.String"/> <field name="Hobby" class="java.lang.String"/> <pageHeader> <band height="35" splitType="Stretch"> <staticText> <reportElement uuid="9da294e6-b5b7-489f-9469-7edb539315da" x="117" y="0" width="380" height="20"/> <textElement textAlignment="Center" verticalAlignment="Middle"> <font size="14"/> </textElement> <text><![CDATA[Page Header]]></text> </staticText> </band> </pageHeader> <detail> <band height="20" splitType="Stretch"> <textField> <reportElement uuid="6a615d39-86f1-4a74-8ae7-4f8ca8e19afe" x="0" y="0" width="100" height="20"/> <textElement/> <textFieldExpression><![CDATA[$F{Name}]]></textFieldExpression> </textField> <textField> <reportElement uuid="df0929d2-34c0-4561-ab98-e6e5ce37fd11" x="100" y="0" width="100" height="20"/> <textElement/> <textFieldExpression><![CDATA[$F{Address}]]></textFieldExpression> </textField> <textField> <reportElement uuid="675381d8-57b3-427f-88e4-ec4725ea3462" x="200" y="0" width="100" height="20"/> <textElement/> <textFieldExpression><![CDATA[$F{Hobby}]]></textFieldExpression> </textField> </band> </detail> <pageFooter> <band height="45" splitType="Stretch"> <staticText> <reportElement uuid="9da294e6-b5b7-489f-9469-7edb539315da" x="127" y="10" width="380" height="20"/> <textElement textAlignment="Center" verticalAlignment="Middle"> <font size="14"/> </textElement> <text><![CDATA[Page Footer]]></text> </staticText> </band> </pageFooter> </jasperReport>
Дизайн отчета в iReport :
Результатом JRPdfExporter будет:
Обе полосы присутствуют в PDF файле
Результатом JRCsvExporter будет (выходной файл csv):
AAA,US,XXXXX BBB,UK,XXXXX CCC,ID,XXXXX DDD,CC,XXXXX EEE,SA,XXXXX FFF,ZM,XXXXX
Обе полосы отсутствуют в файлеCSV .
Как вы можете видеть, я исключил две полосы (заголовок страницы и нижний колонтитул страницы) только для JRCsvExporter.
Подробнее вы также можете увидеть эту запись: JasperReports: hide textfield when not HTML view
Чтобы предотвратить повторение заголовка столбца, можно использовать следующее свойство:
net.sf.jasperreports.export.{format}.exclude.origin.keep.first.{suffix}.{arbitrary_name}
Например, чтобы избежать повторения заголовка столбца в csv, вы пишете:
<property name="net.sf.jasperreports.export.csv.exclude.origin.keep.first.band.1" value="columnHeader"/>
Https://community.jaspersoft.com/wiki/how-can-i-suppress-page-headers-and-footers-when-exporting-xls