无法通过自动化保存xls文件

时间:2017-03-25 09:03:15

标签: java selenium autoit

我无法通过自动保存.xls文件,但是当我手动执行文件时,保存成功。

使用AutoIt和Robot来保存xls文件,但它没有保存正确的文件。

1 个答案:

答案 0 :(得分:0)

您使用的是哪种API? 我更喜欢使用 Apache POI ,这是处理Excel文件最流行的API之一。

尝试使用此代码,让我工作:

package lib;

import java.io.File;
import java.io.FileInputStream;
import java.io.FileOutputStream;
import java.io.IOException;

import org.apache.poi.hssf.usermodel.HSSFSheet;
import org.apache.poi.hssf.usermodel.HSSFWorkbook;

class WriteExcelConfig {

    public static void main(String[] args) throws IOException {

        String path = "database/data.xls";
        FileInputStream fis = new FileInputStream(new File(path));

        HSSFWorkbook wb = new HSSFWorkbook(fis);

        HSSFSheet sheet = wb.getSheetAt(0);

        sheet.getRow(0).createCell(0).setCellValue("Test Val");

        FileOutputStream fos = new FileOutputStream(new File(path));
        wb.write(fos);

        wb.close();
        fis.close();
        fos.close();
    }
}

由于您提到了 .xls 文件,即Excel 97-2003格式,上面的代码将起作用。如果您打算使用较新格式的 .xlsx ,请使用以下代码:

package lib;

import java.io.File;
import java.io.FileInputStream;
import java.io.FileOutputStream;
import java.io.IOException;

import org.apache.poi.xssf.usermodel.XSSFSheet;
import org.apache.poi.xssf.usermodel.XSSFWorkbook;

class WriteExcelConfig {

    public static void main(String[] args) throws IOException {

        String path = "database/data.xlsx";
        FileInputStream fis = new FileInputStream(new File(path));

        XSSFWorkbook wb = new XSSFWorkbook(fis);

        XSSFSheet sheet = wb.getSheetAt(0);

        sheet.getRow(0).createCell(0).setCellValue("Test Val");

        FileOutputStream fos = new FileOutputStream(new File(path));
        wb.write(fos);

        wb.close();
        fis.close();
        fos.close();
    }
}