环境:
- jsf 2.2
- 素面 6.1
- 威利10
我正在尝试使用primefaces的dataExporter将dataTable导出到excel,但我首先得到
<p:commandButton id="btnExpExcel"
alt="#{msgs.inv_exportinvoices}"
ajax="false">
<p:dataExporter type="xls" target="lstFactures"
fileName="invoices"/>
</p:commandButton>
<p:dataTable id="lstFactures" var="inv"
...
选项 1我进入 xls pex。83.2 但我们使用 , 作为十进制而不是 .
...
<p:column headerText="#{msgs.total}">
<h:outputText value="#{inv.total}">
<f:convertNumber locale="#{localeBean.locale}"/>
</h:outputText>
</p:column>
...
选项 2我进入 xls pex。83,2 但 excel 将其处理为文本而不是数字
...
<p:column headerText="#{msgs.total}">
<h:outputText value="#{inv.total}" />
</p:column>
...
**选项 3 ** 与
public void postProcessXLS(Object document) { HSSFWorkbook wb = (HSSFWorkbook) document; HSSFSheet 表 = wb.getSheetAt(0); HSSFRow 标头;
HSSFCellStyle cellStyle = wb.createCellStyle();
cellStyle.setFillForegroundColor(HSSFColor.GREEN.index);
cellStyle.setFillPattern(HSSFCellStyle.SOLID_FOREGROUND);
int ind = 0;
for (int row = 0; row < invoices.size() + 1; row++) {
header = sheet.getRow(row);
for (int col = 0; col < header.getPhysicalNumberOfCells(); col++) {
...
}
if (col == 5) {
HSSFCell cell = header.getCell(col);
//Total is a float
cell.setCellValue(invoices.get(ind).getTotal());
ind++;
}
}
}
}
}
我也尝试了 exportFuction="#{inv.total}" 但我得到了某种错误 exportFunction="#{inv.total}": Method not found...
我在 xls 中得到的是以下内容