java - 如何在通过java创建的Excel工作表中设置整数值?

标签 java excel apache-poi poi-hssf

当我通过java创建excel工作表时,oracle表中具有number数据类型的列,在excel中被转换为text格式。我希望它保留在number 格式。下面是我用于创建 Excel 的代码片段。

    public boolean prepareExcelFilefromQuery(String chanType,
                    Collection<List> queryDataRowWise, HttpServletResponse response)

            {
                List<String> queryDataColWise;
                HSSFRow row = null;
                HSSFCell cell = null;
                Integer rowCounter = 0;
                Integer colCounter;
                boolean success = false;
                try {

                    Iterator<List> rowIterator = queryDataRowWise.iterator();
                    HSSFWorkbook workbook = new HSSFWorkbook();
                    HSSFSheet sheet = workbook.createSheet(chanType + " Report");
                    System.out.println("First row/..." + sheet.getFirstRowNum());
                    while (rowIterator.hasNext()) {
                        colCounter = 0;

                        queryDataColWise = (List) rowIterator.next();
                        Iterator colIterator = queryDataColWise.iterator();

                        row = sheet.createRow(rowCounter++);
                        while (colIterator.hasNext()) {
                            cell = row.createCell(colCounter++);
                            Object o = colIterator.next();

                            if (o instanceof java.lang.String) {
                                String s = (String) o;
                                cell.setCellValue(s);
                            } else if (o instanceof java.lang.Double) {
                                Double d = (Double) o;
                                cell.setCellValue(d);
                            } else if (o instanceof java.lang.Integer) {
                                Integer i = (Integer) o;
                                 cell.setCellType(cell.CELL_TYPE_NUMERIC);
                                cell.setCellValue(i);
                            } else if (o instanceof java.util.Date) {
                                Date date = (Date) o;

                                SimpleDateFormat FORMATTER;

                                FORMATTER = new SimpleDateFormat("MM/dd/yyyy");
                                String date11 = FORMATTER.format(date);
                                HSSFCellStyle cellStyle = workbook.createCellStyle();
                                cellStyle.setDataFormat(HSSFDataFormat
                                        .getBuiltinFormat("m/d/yy"));
                                cell.setCellStyle(cellStyle);
                                cell.setCellValue(FORMATTER.parse(date11));
                            }
                        }
                    }

                    workbook.write(response.getOutputStream());
                    success = true;

                } catch (Exception e) {
                    logger.debug(
                            "Exception caught in prepareExcelFilefromQuery class ", e);
                    System.out
                            .println("Exception caught in prepareExcelFilefromQuery class ");
                    e.printStackTrace();

                } 
                }
                return success;
            }

最佳答案

它只是使用0这样的格式。 More Format

CellStyle numberStyle = wb.createCellStyle();
numberStyle.setDataFormat(format.getFormat("0"));

CellStyle dateStyle = wb.createCellStyle();
dateStyle.setDataFormat(format.getFormat("d-mmm-yy"));

关于java - 如何在通过java创建的Excel工作表中设置整数值?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/13120819/

相关文章:

java - 使用 substring() 和 charAt() 检查字符串是否为回文

java - 使用 TreeMap.Entry 对 Object[] 进行排序

excel - 如何填充组合框

Excel VBA Redshift 查询性能改进

gradle - 抑制由Apache POI引起的Gradle警告

java - 有没有一种方法可以根据单选按钮单击通过代码传递文本值?

python - 使用 pandas 在 Excel 文件中定义列

java - 从 Excel 嵌入式对象到 XML 中的 Base64 字符串

java - 如何将@query jpa结果导出到.dat文件/

java - 无法让 charAt(0) 工作