用JAVA操作Excel表格。
创建一个EXCEL并添加内容:
import java.io.File;
import jxl.Workbook;
import jxl.write.Label;
import jxl.write.WritableSheet;
import jxl.write.WritableWorkbook;
public class CreateExcel {
public static void main(String args[]) {
try {
// 打开文件
WritableWorkbook book = Workbook.createWorkbook(new File("F:/doc/JXL/test.xls"));
// 生成名为"第一页"的工作表,参数0表示这是第一页
WritableSheet sheet = book.createSheet("第一页", 0);
// 在Label对象的构造子中指名单元格位置是第i列第j行(0,0)
// 以及单元格内容为test
for (int i=0; i<10; i++) {// 代表列
for(int j=0; j<i;j++) {// 代表行
Label label = new Label(i, j, "test:i="+i+";j="+j);
// 将定义好的单元格添加到工作表中
sheet.addCell(label);
}
}
// 生成名为"第二页"的工作表,参数1表示这是第二页
WritableSheet sheet2 = book.createSheet("第二页", 1);
for (int i=0; i<10; i++) {// 代表列
for(int j=0; j<i;j++) {// 代表行
// 生成一个保存数字的单元格,必须使用Number的完整包路径否则有语法歧义,单元格位置是第i列第j行,值为789.123
jxl.write.Number number = new jxl.write.Number(i, j, 789.123);
sheet2.addCell(number);
}
}
// 写入数据并关闭文件
book.write();
book.close();
} catch (Exception e) {
System.out.println(e);
}
}
}
修改刚才的Excel内容:
public class UpdateExcel {
public static void main(String args[]) {
try {
// Excel获得文件
Workbook wb = Workbook.getWorkbook(new File("F:/doc/JXL/test.xls"));
// 打开一个文件的副本,并且指定数据写回到原文件
WritableWorkbook book = Workbook.createWorkbook(new File(
"F:/doc/JXL/test.xls"), wb);
// 获得第一个工作表对象
WritableSheet sheet = book.getSheet(0);
// 得到第i列第j行的单元格
for (int i=0; i<10; i++) {// 代表列
for(int j=10; j<20;j++) {// 代表行
Label label = new Label(i, j, "test:i="+i+";j="+j);
// 将定义好的单元格添加到工作表中
sheet.addCell(label);
}
}
// 获得第二个工作表对象
WritableSheet sheet2 = book.getSheet(1);
// 得到第i列第j行的单元格
for (int i=0; i<10; i++) {// 代表列
for(int j=10; j<20;j++) {// 代表行
jxl.write.Number number = new jxl.write.Number(i, j, 3.1415926);
sheet2.addCell(number);
}
}
// 添加一个工作表
WritableSheet sheet3 = book.createSheet("第三页", 2);
sheet3.addCell(new Label(0, 0, "第三页的测试数据"));
book.write();
book.close();
} catch (Exception e) {
System.out.println(e);
}
}
}
读取Excel内容到代码:
import java.io.File;
import jxl.Cell;
import jxl.Sheet;
import jxl.Workbook;
public class ReadExcel {
public static void main(String args[]) {
try {
Workbook book = Workbook.getWorkbook(new File("F:/doc/JXL/test.xls"));
// 获得第一个工作表对象
Sheet sheet = book.getSheet(0);
// 得到第i列第j行的单元格
for (int i=0; i<10; i++) {// 代表列
for(int j=0; j<i;j++) {// 代表行
Cell cell = sheet.getCell(i, j);// 得到第i列,第j行的数据
String result = cell.getContents();
System.out.println(result);
}
}
// 获得第二个工作表对象
Sheet sheet2 = book.getSheet(1);
// 得到第i列第j行的单元格
for (int i=0; i<10; i++) {// 代表列
for(int j=0; j<i;j++) {// 代表行
Cell cell = sheet2.getCell(i, j);// 得到第i列,第j行的数据
String result = cell.getContents();
System.out.println(result);
}
}
book.close();
} catch (Exception e) {
System.out.println(e);
}
}
}
测试成功。