我正在使用 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);
然后将适当的日期值添加到我的 map ......
一切都很好,除了 excel 列中的每个日期都是带有前导撇号的字符串,并且该列未格式化为包含日期。
撇号是如何到达那里的?为什么该列没有格式化为日期?
我会很感激任何指示。
最佳答案
问题解决了。
问题在于我的导出方式,我最初告诉 jasperReports 不要检测细胞类型。
所以解决方法是设置 JRXlsExporterParameter.IS_DETECT_CELL_TYPE
至 TRUE
.
例如
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
希望能帮助到你 :)
关于excel - Dynamicjasper Excel 和领先的撇号,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/9137512/