无法在Excel中以数字格式插入数据

我有下面的Java(Selenium)方法,将数据插入Excel工作表:

private static void getPaceNumber(WebDriver chromeDriver, String dBName, XSSFSheet paceSheet, String pubName, int i, XSSFCell cell, XSSFWorkbook workbook) throws Exception { CellStyle style = workbook.createCellStyle(); cell = paceSheet.getRow(i).createCell(1); if (dBName == "" || dBName.equals("null")) { cell.setCellValue("N/A"); } else { chromeDriver.findElement(By.xpath("html/body/form[2]/b/b/table/tbody/tr[2]/td[2]/textarea")) .sendKeys("\"" + dBName + "\""); chromeDriver.findElement(By.xpath("html/body/form[2]/b/b/table/tbody/tr[4]/td[2]/input[1]")).click(); List<WebElement> pace = chromeDriver .findElements(By.xpath("html/body/form[2]/table[1]/tbody/tr[2]/td[2]/input[1]")); int paceSize = pace.size(); if (paceSize >= 1) { int dbPaceNumber = Integer.parseInt( chromeDriver.findElement(By.xpath("html/body/form[2]/table[1]/tbody/tr[2]/td[2]/input[1]")) .getAttribute("value")); chromeDriver.findElement(By.xpath(".//*[@id='searchPublication']")).click(); chromeDriver.findElement(By.xpath("html/body/form[2]/b/b/table/tbody/tr[2]/td[2]/textarea")) .sendKeys("\"" + pubName + "\""); chromeDriver.findElement(By.xpath("html/body/form[2]/b/b/table/tbody/tr[4]/td[2]/input[1]")).click(); int pubPaceNumber = Integer.parseInt( chromeDriver.findElement(By.xpath("html/body/form[2]/table[1]/tbody/tr[2]/td[2]/input[1]")) .getAttribute("value")); if (dbPaceNumber == pubPaceNumber) { cell.setCellValue(dbPaceNumber); } else { cell.setCellValue(dbPaceNumber + "\n" + pubPaceNumber); style.setWrapText(true); cell.setCellStyle(style); } } else { List<WebElement> table = chromeDriver .findElements(By.xpath("html/body/form[2]/table[1]/tbody/tr[4]/td/b")); int tabSize = table.size(); if (tabSize == 1) { chromeDriver.findElement(By.xpath(".//*[@id='searchPublication']")).click(); chromeDriver.findElement(By.xpath("html/body/form[2]/b/b/table/tbody/tr[2]/td[2]/textarea")) .sendKeys("\"" + pubName + "\""); chromeDriver.findElement(By.xpath("html/body/form[2]/b/b/table/tbody/tr[4]/td[2]/input[1]")) .click(); List<WebElement> paceWithFPN = chromeDriver .findElements(By.xpath("html/body/form[2]/table[1]/tbody/tr[2]/td[2]/input[1]")); int paceWithFPNSize = paceWithFPN.size(); if (paceWithFPNSize >= 1) { int paceSubNumber = Integer.parseInt(chromeDriver .findElement(By.xpath("html/body/form[2]/table[1]/tbody/tr[2]/td[2]/input[1]")) .getAttribute("value")); cell.setCellType(Cell.CELL_TYPE_NUMERIC); cell.setCellValue(paceSubNumber); } else { cell.setCellValue("N/A"); } } else { cell.setCellValue("N/A"); } } } } 

我想检查两个不同的标准的值,如果他们都相同,插入Excel单元格中的值,否则将两个值插入单个单元格中。 基本上检索的值是整数types。 我可以正确地插入值,但如果有两个值,它们被插入作为一个单一的行(另一个延续)。 单个值在Excel单元格中自动alignment(一般数字格式)。 在有两个值的地方,我需要双击单元格,然后以两行格式显示,同时显示为string(左alignment)。

我知道,当我使用+"XXX"+结果是一个string,但我怎样才能使这成一个整数?

像单一值,这必须是正确的alignment,也有一种方法,我可以在单元格内自动换行符?

 **Current output:** **Expected Output:** 

在这里输入图像描述 在这里输入图像描述

我认为你必须增加包含单元格的行的rowheight。

在一开始的时候:

 int defaultHeight = paceSheet.getRow(0).getHeight(); 

以后,当你创build这样一个单元格时:

 paceSheet.getRow(i).setHeight(defaultHeight*2); 

那些线:

 style.setWrapText(true); style.setAlignment(CellStyle.ALIGN_RIGHT); 

你只需要做一次(比如在创build后),因为所有受影响的单元格的style都是一样的。