Android Studio 依赖
compile 'net.sourceforge.jexcelapi:jxl:2.6.12'
本测试在Exlipse中, 由于Jxl的跨平台性。
- 创建Excel表
/**
* 创建Excel
* Created by mazaiting on 2017/9/28.
*/
public class WriteExcel {
/**Sheet表, Excel表中的底部的表名*/
private WritableSheet mWritableSheet;
/**Excel工作簿*/
private WritableWorkbook mWritableWorkbook;
public static void main(String[] args) throws WriteException, IOException {
WriteExcel excel = new WriteExcel();
excel.create("test");
for (int i = 0; i < 10; i++) {
excel.addString(0, i, "text"+i);
excel.addString(1, i, "text"+i+"-1");
excel.addString(2, i, "text"+i+"-2");
}
excel.close();
}
/**
* 创建Sheet表
* @param fileName 文件名
* @return Sheet表
*/
public WritableSheet create(String fileName){
try {
// 输出Excel的路径
String filePath = "E:/"+fileName+".xls";
// 新建一个文件
OutputStream os = new FileOutputStream(filePath);
// 创建Excel工作簿
mWritableWorkbook = Workbook.createWorkbook(os);
// 创建Sheet表
mWritableSheet = mWritableWorkbook.createSheet("第一张工作表", 0);
return mWritableSheet;
} catch (IOException e) {
e.printStackTrace();
}
return null;
}
/**
* 关闭工作簿
* @throws IOException
* @throws WriteException
*/
public void close() throws IOException, WriteException {
// 写入数据
mWritableWorkbook.write();
// 关闭文件
mWritableWorkbook.close();
}
/**
* 添加字符串
* @param col 列号
* @param row 行号
* @param text 文本
* @throws WriteException
*/
public void addString(int col, int row, String text) throws WriteException {
if (null == mWritableSheet) return;
Label label = new Label(col, row, text);
mWritableSheet.addCell(label);
}
/**
* 添加数字
* @param col 列号
* @param row 行号
* @param num 数字
* @throws WriteException
*/
public void addInt(int col, int row, int num) throws WriteException {
if (null == mWritableSheet) return;
Number number = new Number(col, row, num);
mWritableSheet.addCell(number);
}
}
- 读取Excel表
/**
* 读取Excel
*/
public class ReadExcel {
public static void main(String[] args) {
// 字符列表
List<String> list = new ArrayList<String>();
// 文件路径
String filePath = "E:/test.xls";
// 输入流
InputStream is = null;
// Excel工作簿
Workbook workbook = null;
try {
// 加载Excel文件
is = new FileInputStream(filePath);
// 获取workbook
workbook = Workbook.getWorkbook(is);
} catch (Exception e) {}
// 获取sheet, 如果你的workbook里有多个sheet可以利用workbook.getSheets()方法来得到所有的
Sheet sheet = workbook.getSheet(0);// 这里只取得第一个sheet的值,默认从0开始
System.out.println(sheet.getColumns());// 查看sheet的列
System.out.println(sheet.getRows());// 查看sheet的行
Cell cell = null;// 单个单元格
// 开始循环,取得cell里的内容,按具体类型来取
// 这里只取String类型
for (int j = 0;j<sheet.getColumns();j++){
StringBuffer sb = new StringBuffer();
for (int i=0;i<sheet.getRows();i++){
// 列,行
cell = sheet.getCell(j, i);
sb.append(cell.getContents());// 获取单元格内容
sb.append(",");// 将单元格的每行内容用逗号隔开
}
list.add(sb.toString());//将每行的字符串用一个String类型的集合保存。
}
workbook.close();// 关闭工作簿
// 迭代集合查看每行的数据
for (String ss : list){
System.out.println(ss);
}
}
}