Android实现Excel导入导出工具(支持03以上)

16 篇文章 0 订阅
14 篇文章 0 订阅

业务需求,为了更加方便的读取导出Excel直接是封装了一个库简单的调一方法即可
这里使用的是jxl和poi。因为之前并不知道jxl不支持03以上的Excel版本,后来做了poi的封装,可以根据自己的需求调用。

一、导入依赖
根据需求导入以下依赖,也可以全部导入

	//支持2003以下版本Excel,导入jxl一个就行
    implementation 'net.sourceforge.jexcelapi:jxl:2.6.12'
    //支持2003以上版本Excel,导入以下
    implementation 'org.apache.poi:poi:3.17'
    implementation 'org.apache.poi:poi-ooxml:3.17'
    implementation 'org.apache.xmlbeans:xmlbeans:3.1.0'
    implementation 'stax:stax:1.2.0'
    implementation 'com.github.GuangNian10000:GnExcle03:v1.5.0'

二、ExcelUtil类介绍

jxl库导出

	/**
	 * context  	上下文
	 * fileName		文件名
	 * mListData	数据集
	 * ExcleUrl		存储路径
	 * */
	public static void writeExcel(Context context, String fileName, List<mData>mListData, String ExcleUrl)

jxl库导入(仅支持03以下的读取)

	/**
	 * activity  	上下文
	 * filepath		文件名
	 * */
	/**
	 * 查询excel表格结果
	 * */
	public static List<mData> QueryUser(Activity activity, Uri filepath)

poi库导出

	/**
	 * context  	上下文
	 * fileName		文件名
	 * mListData	数据集
	 * ExcleUrl		存储路径
	 * */
	/**
	 *  支持03以上
	 * */
	public static void writeExcel03(Context context, String fileName, List<mData>mListData, String ExcleUrl)

poi库导入

	/**
	 * activity  	上下文
	 * filepath		文件名
	 * */
	/**
	 *  支持查询03以上
	 * */
	public List<mData> mData = new ArrayList<>();
	public List<mData> readExcel03(String fileName)

Url转String

	/**
	 * 路径转换
	 * */
	public static String getPath(final Context context, final Uri uri) 

数据实体
SheetName就是工作表的Sheet名称
mListData 存储的是每一行的数据集合
在这里插入图片描述

public class mData {
    public String SheetName="";
    public List<List<String>> mListData = new ArrayList<>();
}

三、示例

    @Override
    public void onClick(View view) {
        Intent intent = new Intent(Intent.ACTION_GET_CONTENT);
        intent.setType("*/*");//设置任意类型
        intent.addCategory(Intent.CATEGORY_OPENABLE);
        startActivityForResult(intent, 1);
    }
	
	/**
	*处理回调
	*/
    public List<mData> mDatas= new ArrayList<>();
    @Override
    protected void onActivityResult(int requestCode, int resultCode, Intent data) {
        super.onActivityResult(requestCode, resultCode, data);
        if (requestCode == 1&&resultCode == RESULT_OK) {
            Uri uri = data.getData();
            ExcelUtil excelUtil =new ExcelUtil();
            if (uri != null) {
                String path = excelUtil.getPath(this, uri);
                //根据路径读取Excel内容至实体
                mDatas = excelUtil.readExcel03(path);
            }
            try {
            	//设置导出路径
                String ExcleUrl = Environment.getExternalStorageDirectory().toString() + File.separator  + File.separator + "ExcelDirectory";
                //导出至指定路径
                excelUtil.writeExcel03(this,"测试用",mDatas,ExcleUrl);
            } catch (Exception e) {
                e.printStackTrace();
                Log.d("error",e+"");
            }
        }
    }

四、结
如果需求需要改动的话,那么可以直接复制粘贴ExcelUtil这个类的内容至自己项目中进行更改

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值