Android解析Excel文件(JXL)(xls格式)

来源:互联网 发布:泵选型计算软件 编辑:程序博客网 时间:2024/04/26 06:04
jar包:jxl,需要的可以+ QQ: 1453813068 WX:Even-bin(注明来意)


使用:(例子)

1.我们的实体类Bean

public class ExcelBean {    private String number;    public String getNumber() {        return number;    }    public void setNumber(String number) {        this.number = number;    }}

2.我们的解析工具类

public class XlsDataUtil {    public static ArrayList<ExcelBean> getXlsData(final String xlsName, final int index, Context context){        final ArrayList<ExcelBean> excelBeens = new ArrayList<>();        final AssetManager assetManager = context.getAssets();        try {            Workbook workbook = Workbook.getWorkbook(assetManager.open(xlsName));            Sheet sheet = workbook.getSheet(index);            int sheetNum = workbook.getNumberOfSheets();            //行            int sheetRows = sheet.getRows();            //列            int sheetColumns = sheet.getColumns();            for (int i = 0; i < sheetRows; i++) {                ExcelBean excelBean = new ExcelBean();                excelBean.setNumber(sheet.getCell(0,i).getContents()+"");                excelBeens.add(excelBean);            }            workbook.close();        } catch (IOException e) {            e.printStackTrace();        } catch (BiffException e) {            e.printStackTrace();        }        return excelBeens;    }}
3.Activity使用(TextView用来显示解析出来的内容)

public class MainActivity extends AppCompatActivity {    private TextView tv;    private Handler handler;    private ArrayList<ExcelBean> data;    @Override    protected void onCreate(Bundle savedInstanceState) {        super.onCreate(savedInstanceState);        setContentView(R.layout.activity_main);        tv = (TextView) findViewById(R.id.tv);        data = new ArrayList<>();        //更新UI        handler = new Handler(){            @Override            public void handleMessage(Message msg) {                super.handleMessage(msg);                int i = (int) msg.obj;                if (i==1){                    String s = "";                    for (int i1 = 0; i1 < data.size(); i1++) {                        s+=data.get(i1).getNumber();                    }                   tv.setText(s);                }            }        };        //解析耗时,放在子线程中        new Thread(new Runnable() {            @Override            public void run() {                data.addAll(XlsDataUtil.getXlsData("android_text.xls",0,MainActivity.this));                Message message = handler.obtainMessage();                message.obj = 1;                handler.sendMessage(message);            }        }).start();    }}