使用java将数据列表写入Excel文件中的特定列所需的帮助

我已经写了一个代码读取excel的公式单元格中的数据,并返回一个string,现在我想写一个string值的列表到特定的表和特定的列。 任何人都可以给我一个示例代码片段。 例如:将数据列表写入Excel文件的“C”列。 我的代码如下所示:

@Test public void SampleCustNumFormat() throws Exception { String [][] myXL = getExcelData(); //See what has been read from Excel for (int i=0; i<xRows; i++) { for (int j=3; j<xCols; j++) { System.out.println (" Cust Num " + myXL[i][j]); } } } public String [][] getExcelData() throws Exception { String [][] tabArray=null; FileInputStream fi = new FileInputStream("C:\\SCE docs\\Automation\\CustomerAccount_Information.xls"); HSSFWorkbook myWB = new HSSFWorkbook(fi); HSSFSheet mySheet = myWB.getSheetAt(0); FormulaEvaluator evaluator = myWB.getCreationHelper().createFormulaEvaluator(); xRows = mySheet.getLastRowNum()+1; xCols = mySheet.getRow(0).getLastCellNum(); tabArray = new String [xRows][xCols]; for (int i=0;i<xRows;i++) { HSSFRow row = mySheet.getRow(i); for (int j=3;j<xCols;j++) { HSSFCell cell = row.getCell(j); CellValue cellValue = evaluator.evaluate(cell); String value = evaluateFormula(cellValue); tabArray[i][j]=value; } } return tabArray; } private String evaluateFormula(CellValue cellValue) throws Exception{ // TODO Auto-generated method stub int type = cellValue.getCellType(); Object result=null; switch (type) { case HSSFCell.CELL_TYPE_BOOLEAN: result = cellValue.getBooleanValue(); break; case HSSFCell.CELL_TYPE_NUMERIC: result = cellValue.getNumberValue(); break; case HSSFCell.CELL_TYPE_STRING: result = cellValue.getStringValue(); break; case HSSFCell.CELL_TYPE_BLANK: break; case HSSFCell.CELL_TYPE_ERROR: break; // CELL_TYPE_FORMULA will never happen case HSSFCell.CELL_TYPE_FORMULA: break; } return result.toString(); } } My Output list of string values is : Cust Num CustAccNum Cust Num 2-23-456-7891 Cust Num 2-00-006-7891 Cust Num 2-03-456-7891 Cust Num 2-00-234-5678 Cust Num 2-00-023-4891 Cust Num 2-00-234-7891 Cust Num 2-00-345-6781 

如果我清楚地理解你的问题,那么你只是想在每一行的特定列写入一些数据。 如果这是正确的,那么以下将helo你。

  //sheet is the excel sheet and data[] is the array of data you need to write. For (int i=0; i<=sheet.getLastRowNum(); i++) sheet.getRow(1).createCell(2).setCellValue(data[i]); 

有关详细信息,请使用n0741337build议的快速指南链接 。