Warning: file_get_contents(/data/phpspider/zhask/data//catemap/8/selenium/4.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Java 只有最后一个索引值被插入excel工作表_Java_Selenium - Fatal编程技术网

Java 只有最后一个索引值被插入excel工作表

Java 只有最后一个索引值被插入excel工作表,java,selenium,Java,Selenium,我正在尝试通过web表将数据写入excel。 起始行用空白数据创建,最后一行用数据填充,最后一个索引值。 即使Arraylist中存在数据,其他行也不会被数据填充 public class Write_Excel { public static `FileInputStream` `fis`; public static FileOutputStream fos; public static `HSSFWorkbook` `wb`;

我正在尝试通过web表将数据写入excel。
起始行用空白数据创建,最后一行用数据填充,最后一个索引值。
即使
Arraylist
中存在数据,其他行也不会被数据填充

public class Write_Excel {    
    public static `FileInputStream` `fis`;    
    public static FileOutputStream fos;     
    public static `HSSFWorkbook` `wb`;     
    public static `HSSFSheet` `sheet`;      
    public static `HSSFCell` `cell`;
    public static `HSSFRow` `row`;
    public static `int a = 0`; 

public static void write_Excel(String fileName, String sheetName,
            `ArrayList`<String> `dataToWrite`) throws `IOException` {
    fos = new `FileOutputStream(fileName);
    wb = new HSSFWorkbook();
    sheet = `wb.createSheet(sheetName);`
    `row = sheet.createRow(a++);`
    for (int i = 0; i < 16; i++) {  
      cell = row.createCell(i);
      System.out.println(dataToWrite.get(i).toString());
      cell.setCellValue(new HSSFRichTextString(dataToWrite.get(i)));
        }
    wb.write(fos);
    fos.flush();
    }
}
公共类写入\u Excel{
公共静态`FileInputStream``fis`;
公共静态文件输出流;
公共静态“HSSFWorkbook”“wb”;
公共静态“HSSFSheet”“sheet”;
公共静态'HSSFCell``单元';
公共静态'HSSFRow``行';
公共静态'int a=0';
public static void write_Excel(字符串文件名、字符串名称、,
`ArrayList``dataToWrite`)抛出`IOException`{
fos=新的`FileOutputStream(文件名);
wb=新的HSSF工作手册();
sheet=`wb.createSheet(sheetName)`
`row=sheet.createRow(a++)`
对于(inti=0;i<16;i++){
单元格=行。创建单元格(i);
System.out.println(dataToWrite.get(i.toString());
setCellValue(新的HSSFRichTextString(dataToWrite.get(i));
}
wb.write(fos);
fos.flush();
}
}

您应该将此行添加到for循环中

  HSSFRow row = sheet.createRow(a++);

在执行此操作时,每次调用该函数时都会创建一个新工作簿,最后只会删除以前的工作簿。因此,您只能得到最后一次调用的结果

如果您想在每次调用时添加一行,请这样做,您需要将行号和工作簿作为类变量。此外,您还需要获得已创建的工作表以附加到它。或者你也要把它擦掉

  public static void main(String[] args) {
    try {

      write_Excel("myFile.xls","sheetName",
          Arrays.asList("value 1", "value 2", "value 3"));

      write_Excel("myFile.xls","sheetName",
          Arrays.asList("value 4", "value 5", "value 6"));

    } catch(IOException e) {
      e.printStackTrace();
    }
  }

  private static int newRowIndex = 0;
  private static HSSFWorkbook workbook = new HSSFWorkbook();

  public static void write_Excel(String fileName, String sheetName, List<String> dataToWrite) throws IOException {
    FileOutputStream fos = new FileOutputStream(fileName);

    // open or create sheet
    HSSFSheet sheet = workbook.getSheet(sheetName) != null ?
        workbook.getSheet(sheetName) :
        workbook.createSheet(sheetName);

    // create a new row
    HSSFRow row = sheet.createRow(newRowIndex ++);

    // write your data in the new row
    for (int colIndex = 0; colIndex < dataToWrite.size(); colIndex++) {
      HSSFCell cell = row.createCell(colIndex);
      cell.setCellValue(new HSSFRichTextString(dataToWrite.get(colIndex)));
    }

    workbook.write(fos);
    fos.flush();
    fos.close();
  }
publicstaticvoidmain(字符串[]args){
试一试{
编写Excel(“myFile.xls”、“sheetName”,
asList(“值1”、“值2”、“值3”);
编写Excel(“myFile.xls”、“sheetName”,
asList(“值4”、“值5”、“值6”);
}捕获(IOE异常){
e、 printStackTrace();
}
}
私有静态int newRowIndex=0;
专用静态HSSFWorkbook工作簿=新建HSSFWorkbook();
公共静态void write_Excel(字符串文件名、字符串表名、列表数据写入)引发IOException{
FileOutputStream fos=新的FileOutputStream(文件名);
//打开或创建工作表
HSSFSheet sheet=工作簿。getSheet(sheetName)!=空?
工作簿.getSheet(sheetName):
workbook.createSheet(sheetName);
//创建新行
HSSFRow行=sheet.createRow(newRowIndex++);
//在新行中写入数据
对于(int-colIndex=0;colIndex
您只有一个要写入的字符串列表,是希望每行有一个字符串,还是希望所有字符串都在同一行上?或者每次调用该方法时都添加一行数据?每次调用该方法时都添加一行数据我在下面为其添加了答案。我使用了此代码的引用,但最后一个索引值正在插入excelI测试此代码,它在xls文件中写了2行。在这种情况下,创建了2行,但第一行是空的。你能用修改过的代码编辑你的帖子吗?好的!欢迎