我无法通过自动保存.xls文件,但是当我手动执行文件时,保存成功。
使用AutoIt和Robot来保存xls文件,但它没有保存正确的文件。
答案 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();
}
}