在XL中创build新工作表

下面的代码将创build一个工作表: Sheet1 ,但是当它创build另一个工作表时,它将覆盖我猜,我需要它来保留现有的工作表1,并创build一个新的工作表,如sheet2 。 帮帮我。

 public static String xl_write(String xl_res, String [][] xData,int sheet_no, int row_count) { //System.out.println("Sheet no:" +sheet_no); System.out.println("row count:" + row_count); //System.out.println("xdata:" +xData[i][j]); System.out.println("write res:" +xl_res); XSSFWorkbook wb = new XSSFWorkbook(); XSSFSheet ws = wb.createSheet("TestResult " + sheet_no); for(int i=0;i<=row_count;i++) { XSSFRow wr = ws.createRow(i); for(int j=0;j<=4;j++){ System.out.println("I:" +i); System.out.println("J:" +j); System.out.println("xdata:" +xData); System.out.println("xdata:" +xData [i] [j]); XSSFCell wc = wr.createCell(j); wc.setCellValue(xData[i][j]); } } try { FileOutputStream fos=new FileOutputStream(xl_res); wb.write(fos); } catch (FileNotFoundException e) { e.printStackTrace(); } catch(IOException e) { e.printStackTrace(); } //return xData; return xl_res; } 

每调用一次方法,都会创buildXSSFWorkbook的新实例。 所以,你的代码正在创build一个工作簿,然后你说要创build一个工作表,以便在新工作簿中再次创build工作表。

每当调用方法时,都不是重复创build工作簿。

你可以找出有多less张纸存在

 int getNumberOfSheets() 

看看这里find的API。

如果你试试:

 XSSFWorkbook wb = new XSSFWorkbook(); int num = wb.getNumberOfSheets(); 

你可以通过num++;来增加num num++; 并用你的新数字创build新的工作表。