public static void main(String[] args) throws Exception {
//获取excel文件
String filePath="C:\\Users\\Administrator\\Desktop\\test.xls";
File file = new File(filePath);
//创建不可写入的数据对象
Workbook workbook = Workbook.getWorkbook(file);
//创建可写入的数据对象
WritableWorkbook writableWorkbook = Workbook.createWorkbook(file, workbook);
//获取指定sheet
WritableSheet writableSheet= writableWorkbook.getSheet(0);
//添加数据并写入文件
Label lable0 = new Label(0, 1, "1");
Label lable1 = new Label(1, 1, "1");
Label lable2 = new Label(2, 1, "1");
writableSheet.addCell(lable0);
writableSheet.addCell(lable1);
writableSheet.addCell(lable2);
writableWorkbook.write();
//关流
writableWorkbook.close();
workbook.close();
}
整个代码从上到下也很好理解,先获取 excel 文件对象,然后创建一个不可写入的 Workbook 对象,注意这里是 get 的,为什么要创建这个对象呢?继续看下一步,调用 Workbook 的 createWorkbook 方法,传入两个参数,分别是文件对象和不可写入的 Workbook,这个 Workbook 对象的用处就是获取之前 excel 中的数据,因为只是需要里面的数据,所以它是不可写入的也就很好理解了,能读取就可以。接下来,就是拿着之前的数据与新建的数据,一起写入到 excel 文件中。那么到底是在原来文件的基础上直接追加呢,还是拿到新旧数据再一起覆盖之前的数据呢?当然是后者,这也是创建不可写入的 Workbook 对象的原因,不然的话根据 file 获取到文件,直接在后面追加内容就行了。
为了验证,可把代码做如下修改:
public static void main(String[] args) throws Exception {
//获取excel文件
String filePath="C:\\Users\\Administrator\\Desktop\\test.xls";
File file = new File(filePath);
//获取另一个excel文件
String filePath2="C:\\Users\\Administrator\\Desktop\\test2.xls";
File file2 = new File(filePath2);
//创建不可写入的数据对象
Workbook workbook = Workbook.getWorkbook(file);
//把从text中读取到的内容替换为test2中的内容
workbook = Workbook.getWorkbook(file2);
//创建可写入的数据对象
WritableWorkbook writableWorkbook = Workbook.createWorkbook(file, workbook);
//获取指定sheet
WritableSheet writableSheet= writableWorkbook.getSheet(0);
//添加数据并写入文件
Label lable0 = new Label(0, 1, "1");
Label lable1 = new Label(1, 1, "1");
Label lable2 = new Label(2, 1, "1");
writableSheet.addCell(lable0);
writableSheet.addCell(lable1);
writableSheet.addCell(lable2);
writableWorkbook.write();
//关流
writableWorkbook.close();
workbook.close();
}
test 与 test2 分别写入不同的内容,然后执行代码,会发现 test 中的内容变为 test2 的内容加上代码中的新内容,而不是 test 的内容加上代码中的新内容。因此,可以确定并不是直接追加,而是覆盖。
欢迎来到这里!
我们正在构建一个小众社区,大家在这里相互信任,以平等 • 自由 • 奔放的价值观进行分享交流。最终,希望大家能够找到与自己志同道合的伙伴,共同成长。
注册 关于