使用jxl操作之一: 实现对Excel简单读写操作

时间:2023-03-08 21:51:04

项目目录树

使用jxl操作之一: 实现对Excel简单读写操作

对象类UserObject

UserObject.java
package com.dlab.jxl; public class UserObject { private String userName; private String age; private String address; public String getUserName() {
return userName;
} public void setUserName(String userName) {
this.userName = userName;
} public String getAge() {
return age;
} public void setAge(String age) {
this.age = age;
} public String getAddress() {
return address;
} public void setAddress(String address) {
this.address = address;
} }

Excel简单写操作类ExcelWriter

ExcelWriter.java

package com.dlab.jxl;

    import java.io.FileNotFoundException;
import java.io.FileOutputStream;
import java.io.IOException;
import java.io.OutputStream;
import java.util.List; import jxl.Workbook;
import jxl.write.Label;
import jxl.write.WritableSheet;
import jxl.write.WritableWorkbook;
import jxl.write.WriteException; public class ExcelWriter { private OutputStream os = null; public ExcelWriter(String excelPath) throws FileNotFoundException{
this.os = new FileOutputStream(excelPath);
} public boolean excelWrite(List list){
try {
//创建一个可写的Workbook
WritableWorkbook wwb = Workbook.createWorkbook(os); //创建一个可写的sheet,第一个参数是名字,第二个参数是第几个sheet
WritableSheet sheet = wwb.createSheet("第一个sheet", 0); for(int i=0; i<list.size(); i++){
UserObject user = (UserObject)list.get(i); //创建一个Label,第一个参数是x轴,第二个参数是y轴,第三个参数是内容,第四个参数可选,指定类型
Label label1 = new Label(0, i, user.getUserName());
Label label2 = new Label(1, i, user.getAddress());
Label label3 = new Label(2, i, user.getAge()); //把label加入sheet对象中
sheet.addCell(label1);
sheet.addCell(label2);
sheet.addCell(label3); }
//保存到Workbook中
wwb.write();
//只有执行close时才会写入到文件中,可能在close方法中执行了io操作
wwb.close(); return true; } catch (IOException e) {
e.printStackTrace();
} catch (WriteException e) {
e.printStackTrace();
} return false;
} }

Excel简单读操作类ExcelReader

ExcelReader.java

package com.dlab.jxl;

    import java.io.FileInputStream;
import java.io.FileNotFoundException;
import java.io.IOException;
import java.io.InputStream; import jxl.Sheet;
import jxl.Workbook;
import jxl.read.biff.BiffException; public class ExcelReader { private InputStream is = null; public ExcelReader(String excelPath) throws FileNotFoundException{
this.is = new FileInputStream(excelPath);
} public void excelReader(){
try {
Workbook book = Workbook.getWorkbook(is);
Sheet sheet = book.getSheet(0);
for(int i=0; i<sheet.getRows(); i++){
for(int j=0; j<sheet.getColumns(); j++){ System.out.print(sheet.getCell(j, i).getContents() + " "); if(j == sheet.getColumns() - 1){
System.out.println();
}
}
}
} catch (BiffException e) {
e.printStackTrace();
} catch (IOException e) {
e.printStackTrace();
}
}
}

测试类ExcelTest

package com.dlab.jxl;

    import java.io.FileNotFoundException;
import java.util.ArrayList;
import java.util.List; public class ExcelTest { public static void main(String[] args) { List userList = new ArrayList(); for(int i=0; i<100; i++){
UserObject user = new UserObject();
user.setUserName("用户名称" + Integer.valueOf(i));
user.setAddress("地址" + Integer.valueOf(i));
user.setAge("年龄" + Integer.valueOf(i));
userList.add(user);
} try {
ExcelWriter ew = new ExcelWriter("ExcelWriter.xls");
ew.excelWrite(userList);
} catch (FileNotFoundException e) {
e.printStackTrace();
} try {
ExcelReader er = new ExcelReader("ExcelWriter.xls");
er.excelReader();
} catch (FileNotFoundException e) {
e.printStackTrace();
} } }

测试结果

使用jxl操作之一: 实现对Excel简单读写操作

使用jxl操作之一: 实现对Excel简单读写操作