今天,我来教大家怎么实现Java操作Excel文件。
import java.io.File;
import jxl.Cell;
import jxl.Sheet;
import jxl.Workbook;
import com.alibaba.fastjson.JSONArray;
import com.alibaba.fastjson.JSONObject;
/**
* @author HuangQinJian 上午11:04:58 2017年5月1日
*/
public class ExcelOperate {
public static void main(String[] args) {
Sheet sheet;
Workbook book;
Cell cell1, cell2, cell3, cell4, cell5;
JSONArray array = new JSONArray();
try {
// 为要读取的excel文件名
book = Workbook.getWorkbook(new File("D://test.xls"));
// 获得第一个工作表对象(ecxel中sheet的编号从0开始,0,1,2,3,....)
sheet = book.getSheet(0);
for (int i = 1; i < sheet.getRows(); i++) {
// 获取每一行的单元格
cell1 = sheet.getCell(0, i);// (列,行)
cell2 = sheet.getCell(1, i);
cell3 = sheet.getCell(2, i);
cell4 = sheet.getCell(3, i);
cell5 = sheet.getCell(4, i);
if ("".equals(cell1.getContents())) {// 如果读取的数据为空
break;
}
JSONObject object = new JSONObject();
object.put("ID", cell1.getContents());
object.put("编号", cell2.getContents());
object.put("姓名", cell3.getContents());
object.put("数量", cell4.getContents());
object.put("住址", cell5.getContents());
array.add(object);
}
System.out.println(array.toString());
book.close();
} catch (Exception e) {
e.printStackTrace();
}
}
}
在这个过程中你可能会遇到一个错误,如下图:
![](http://op3sagu96.bkt.clouddn.com/8.png?x-oss-process=image/resize,w_1400/format,webp)
这是因为不支出读取 excel 2007 文件(.xlsx)。只支持 excel 2003 (.xls)。
![](http://op3sagu96.bkt.clouddn.com/9.png?x-oss-process=image/resize,w_1400/format,webp)
输入的数据格式:
![](http://op3sagu96.bkt.clouddn.com/10.png?x-oss-process=image/resize,w_1400/format,webp)
输出结果:
[{“编号”:”11”,”姓名”:”黄”,”住址”:”辽宁”,”ID”:”1”,”数量”:”3”},{“编号”:”22”,”姓名”:”钦”,”住址”:”大连”,”ID”:”2”,”数量”:”32”},{“编号”:”33”,”姓名”:”建”,”住址”:”开发区”,”ID”:”3”,”数量”:”32”},{“编号”:”44”,”姓名”:”黄”,”住址”:”软件学院”,”ID”:”4”,”数量”:”32”},{“编号”:”55”,”姓名”:”钦建”,”住址”:”大黑山”,”ID”:”5”,”数量”:”3232”}]
更多内容欢迎访问我的个人主页
![](https://user-gold-cdn.xitu.io/2017/5/2/050b216700a6548f76fbe2d4c4505039.png?x-oss-process=image/resize,w_1400/format,webp)