Android将Excel表数据导入SQLite数据库

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了Android将Excel表数据导入SQLite数据库相关的知识,希望对你有一定的参考价值。

前两天接了个私活,需求方给了一个Excel表格,需要使用到里面的7000+条数据进行查询,最开始以为7000条一条条加入数据库也还好,以下是其中一部分数据:

但当我添加了20多条的时候突然发现这样的方式太蠢了,所以想着既然文件可以读取,那是否可以将Excel文件里的数据读取导入数据库呢?上网查了下资料,发现确实是可行的。

准备工作

我们要将Excel导入SQLite数据库,需要使用JXL API(Java Excel API),所以我们需要在gradle文件中导入jxl的maven库:
jxl maven 仓库地址

// https://mvnrepository.com/artifact/net.sourceforge.jexcelapi/jxl
compile 'net.sourceforge.jexcelapi:jxl:2.6.12'

由于我只用到了Sheet表格的读取功能,所以在需要使用api的java代码中导入以下几个jxl包:

import jxl.Sheet;
import jxl.Workbook;
import jxl.read.biff.BiffException;

使用

我将excel文件放到了assets包下,具体对excel表格进行操作的代码如下:

private void importSheet() 
        try 
            // 1
            InputStream is = getResources().getAssets().open("vipdb.xls");
            // 2
            Workbook book = Workbook.getWorkbook(is);
            // 3
            Sheet sheet = book.getSheet(0);
            // 4
            for (int j = 0; j < sheet.getRows(); ++j) 
                // 5
                initDataInfo(sheet.getCell(0, j).getContents(), sheet.getCell(1, j).getContents());
            
            book.close();
         catch (IOException | BiffException e) 
            e.printStackTrace();
        

    

//这个方法是写在SQLiteOpenHelper子类里的,为了方便查看这里拿出来了
public void initDataInfo(String code, String value) 
        SQLiteDatabase db = getWritableDatabase();
        ContentValues cv = new ContentValues();
        cv.put("code", code);
        cv.put("value", value);
        db.insert(DATA_TABLE, null, cv);
    

通过sheet对象就可以对excel表格进行操作了

  • 1. 打开excel文件,我的excel文件放在了Assets包下,你也可以将文件放在SD卡下,只要路径正确就行。
  • 2. 获取Workbook对象,通过查看Workbook源码可以看到,这是个抽象类,里面包含了很多对于Sheet表格访问的方法。
  • 3. 获取第一页的Sheet表对象。
  • 4. sheet.getRows()可以获取行数,sheet.getColumns()获取列数。
  • 5. sheet.getCell(0, j).getContents()可以获得第j行第一列的内容,同理sheet.getCell(1, j).getContents()可以获取第j行第二列的内容。

注意

如果excel文件中含有中文,在进行操作的时候,jxl会自动将xls文件转成csv文件格式,而在转换后会将中文默认转成”_”下划线,如我贴的第一张图中的数据第二列的“01期08”则会转成“01_08”,如果你想在存入数据库使用中文存入,只需要将字符”_”替换成”期”即可

以上是关于Android将Excel表数据导入SQLite数据库的主要内容,如果未能解决你的问题,请参考以下文章

如何批量导入数据到Sqlite数据库

如何将 SQLite 表导入核心数据(SQLite 也是)

SQLite从Excel文件中导入数据

以编程方式将 SQLite 数据导出到 iOS 中的 Excel

excel数据导入到android项目下的sqlite数据库中

转载于:需求方_Android将Excel表数据导入SQLite数据库 

猜你喜欢

转载自blog.csdn.net/weixin_42602900/article/details/131175057