1

DynamicJasper用来生成 Excel 工作表。我在日期列值前面加上撇号时遇到了一些困难。

我这样定义我的专栏:

AbstractColumn dateColumn = ColumnBuilder.getNew().setColumnProperty(
title.getUniqueId(), Date.class.getName()).setTitle(title.getTitle()).
setWidth(150).setFixedWidth(false).setPattern("dd MMM yyyy").build();
drb.addColumn(dateColumn);

然后将适当的日期值添加到我的地图......

一切都很好,除了 excel 列中的每个日期都是带有前导撇号的字符串,并且该列未格式化为包含日期。

撇号是如何到达那里的?为什么该列没有格式化为日期?

我会很感激任何指示。

4

1 回答 1

3

问题解决了。

问题在于我的导出方式,我最初告诉 jasperReports 不要检测细胞类型。

所以解决方法是设置JRXlsExporterParameter.IS_DETECT_CELL_TYPETRUE.

例如

JRXlsExporter exporterxls2 = new JRXlsExporter();
exporterxls2.setParameter(JRXlsExporterParameter.IS_COLLAPSE_ROW_SPAN, Boolean.TRUE);
exporterxls2.setParameter(JRXlsExporterParameter.IS_REMOVE_EMPTY_SPACE_BETWEEN_COLUMNS, Boolean.TRUE);
exporterxls2.setParameter(JRXlsExporterParameter.IS_REMOVE_EMPTY_SPACE_BETWEEN_ROWS, Boolean.TRUE);
exporterxls2.setParameter(JRXlsExporterParameter.IS_ONE_PAGE_PER_SHEET, Boolean.FALSE);
exporterxls2.setParameter(JRXlsExporterParameter.IS_DETECT_CELL_TYPE, Boolean.TRUE);
exporterxls2.setParameter(JRXlsExporterParameter.IS_WHITE_PAGE_BACKGROUND, Boolean.FALSE);
exporterxls2.setParameter(JRXlsExporterParameter.IS_IGNORE_GRAPHICS, Boolean.FALSE);
exporterxls2.setParameter(JRExporterParameter.JASPER_PRINT_LIST, jasperPrints);
exporterxls2.setParameter(JRExporterParameter.OUTPUT_FILE_NAME, reportFile.getPath());

我认为你们中的一些人可能正在使用外部文件来配置导出,在这种情况下,要包含的行是 net.sf.jasperreports.export.xls.detect.cell.type=true

希望能帮助到你 :)

于 2012-02-04T10:51:15.277 回答