Java jxl.jar 读取xls
因项目需要。。。
新手,= =看着大佬的做的,转自(https://blog.csdn.net/mazaiting/article/details/79707881)
jxl.jar只用于操作xls格式!!
链接: https://pan.baidu.com/s/1_jZJJuARnugh65pnUeZb4g 提取码: 3hgb
↑这是jxl-2.6.12.jar
1、main and 读写权限
import android.Manifest;
import android.content.pm.PackageManager;
import android.os.Build;
import android.os.Bundle;
import android.support.annotation.NonNull;
import android.support.v4.app.ActivityCompat;
import android.support.v7.app.AppCompatActivity;
import android.util.Log;
public class MainActivity extends AppCompatActivity {
//读写权限
private static String[] PERMISSIONS_STORAGE = {
Manifest.permission.READ_EXTERNAL_STORAGE,
Manifest.permission.WRITE_EXTERNAL_STORAGE};
//请求状态码
private static int REQUEST_PERMISSION_CODE = 1;
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
if (Build.VERSION.SDK_INT > Build.VERSION_CODES.LOLLIPOP) {
if (ActivityCompat.checkSelfPermission(this, Manifest.permission.WRITE_EXTERNAL_STORAGE) != PackageManager.PERMISSION_GRANTED) {
ActivityCompat.requestPermissions(this, PERMISSIONS_STORAGE, REQUEST_PERMISSION_CODE);
}
ReadExcel.read();//去读表格!!!
}
}
@Override
public void onRequestPermissionsResult(int requestCode, @NonNull String[] permissions, @NonNull int[] grantResults) {
super.onRequestPermissionsResult(requestCode, permissions, grantResults);
if (requestCode == REQUEST_PERMISSION_CODE) {
for (int i = 0; i < permissions.length; i++) {
Log.i("MainActivity", "申请的权限为:" + permissions[i] + ",申请结果:" + grantResults[i]);
}
}
}
}
2、导入jxl后的读取xls文件
import java.io.File;
import java.io.FileInputStream;
import java.io.InputStream;
import java.util.ArrayList;
import java.util.List;
import jxl.Cell;
import jxl.Sheet;
import jxl.Workbook;
/**
* 读取Excel
*/
public class ReadExcel {
public static void read(){
// 字符列表
List<String> list = new ArrayList<String>();
// 文件路径
File file = new File("/storage/emulated/0/testz/test.xls");//这是我的目录,根据实际情况修改
//文件是否存在
if(file.isFile()){
System.out.println("OK");
}else
{
System.out.println("Not found");
}
// 输入流
InputStream is = null;
// Excel工作簿
Workbook workbook = null;
try {
// 加载Excel文件
is = new FileInputStream(file);
// 获取workbook
workbook = Workbook.getWorkbook(is);
} catch (Exception e) {
System.out.println("not ok");//原来代码没有这句= =
}
// 获取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);
}
}
}
↓这个是我的表格
↓这是我的输出结果
踩在巨人的肩膀上慢慢爬= =!!!