这是我第一次真正的写一篇博文,之前在CSDN里面学到了很多。我之前遇到了一个问题,我需要将我的Excel中的数据导入AVD(虚拟机)中的SQLite,但是在整个CSDN中找到的答案,不能说没有帮助,但是还是没有一次性的帮我解决这个我问题,因此,我想在这里将我的解决方案贴出来,来帮助那些遇到类似困难的同学,鉴于我是个初学者,我的文章没有一定的深度,但是我一定会将文章写得详细。

不多说,开始吧。说一下,我的大致方式是:将EXCEL保存为cvs格式,然后导入SQLite Expert 的可视化sqlite管理工具,然后放入assets中。然后利用代码写入复制到sqlite中。
第一步:打开Excel,建立一张表。第一行(主键)一定要设置为_id, 后面会解释。

第二步:保存为CSV格式。

第三步:利用记事本打开我们新建的Demo.csv。将编码改为UTF-8,防止在模拟器上运行发生文字乱码的现象。

第四步:点开SQLite Expert数据库管理工具。点击File→New DataBase 新建一个Demo_db的数据库。

第五步:右击刚刚建好的库,然后点击→import text file 导入建好的表。是不是很简单的。


点击Design→Indexs。将_id,设置为主键。然后然后点击ok, 然后再点击apply。


第六步:我们从上图中的File: F:\Dmeo\Demo_DB, (导入时我们的CVS格式表在哪里,数据库文件,就在哪里)找到它。

但是没有格式(有时会遇见,但有时不会遇见),一般来说,数据库都是.db格式。我们给它加上后缀名.db。(注意:必须点开文件夹选项,然后设置显示后缀名才行),然后复制到项目中的assets中去。

复制到assets中去。

第七步:将该数据中Demo_DB中Demo表中的数据复制到模拟器中去(此处我不知道怎么描述)。代码如下。。
因为我们这里用的是适配器是SimpleCursorAdapter,返回的数据中必须包含字段:_id且必须为关键字(_id是主键)。如果返回的Cursor数据中没有包含_id, 字段,将无法绑定成功。

MainActivity.java 代码
package com.example.direct_use;
import java.io.File;
import java.io.FileOutputStream;
import java.io.InputStream;
import android.app.Activity;
import android.database.Cursor;
import android.database.sqlite.SQLiteDatabase;
import android.os.Bundle;
import android.support.v4.widget.SimpleCursorAdapter;
import android.util.Log;
import android.widget.CursorAdapter;
import android.widget.ListAdapter;
import android.widget.ListView;
import android.widget.TextView;
public class MainActivity extends Activity
{
String DB_NAME = "Demo_DB.db";
ListView list;
SQLiteDatabase db;
@Override
protected void onCreate(Bundle savedInstanceState)
{
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
Log.v("breakthrough", "加载界面完成");
//将数据库进行复制。。
File fileDir = getFilesDir();
Log.v("breakthrough", "fileDir成功");
File file = new File(fileDir, DB_NAME);
Log.v("breakthrough", "file创建成功");
if(file.exists())
{
Log.v("breakthrough", "界面已存在了file文件,为上次运行的时候的造成的");
return;
}
InputStream in = null;
FileOutputStream out = null;
Log.v("breakthrough", "输入输出流构建完成");
try
{
in = this.getAssets().open(DB_NAME);
Log.v("breakthrough", "打开了getAssets中的haha.db");
out = new FileOutputStream(file);
Log.v("breakthrough", "初始化输出流成功");
byte[] buffer = new byte[1024];
int length = -1;
while( (length = in.read(buffer)) != -1 )
{
out.write(buffer, 0, length);
Log.v("breakthrough", "输入流输入了多少次啊");
}
Log.v("breakthrough", "复制成功");
}
catch(Exception e)
{
e.printStackTrace();
Log.v("breakthrough", "数据库复制失败");
}
finally
{
try{
in.close();
out.close();
}
catch(Exception e)
{
e.printStackTrace();
Log.v("breakthrough", "关闭输入输出流失败");
}
}
db = SQLiteDatabase.openOrCreateDatabase(file, null);
Log.v("breakthrough", "打开复制的数据库成功");
Cursor cursor = db.rawQuery("select _id, content from Demo", null);
Log.v("breakthrough", "返回了Cursor成功");
list = (ListView)findViewById(R.id.list);
Log.v("breakthrough", "实例化list成功");
String ss = cursor.getColumnName(0);
Log.v("break", "实例化ss成功");
int a = cursor.getColumnCount();
Log.v("break", "实例化a成功");
int b = cursor.getCount();
TextView text = (TextView)findViewById(R.id.text);
Log.v("break", "实例化b成功");
text.setText("行名是:"+ss + ",列数是:" + a +",行数是:"+ b);
Log.v("break", "text显示成功");
SimpleCursorAdapter adapter = new SimpleCursorAdapter(
MainActivity.this,
R.layout.line, cursor,
new String[] {"_id", "content"},
new int[] {R.id.text0, R.id.text},
CursorAdapter.FLAG_REGISTER_CONTENT_OBSERVER);
Log.v("break", "绑定成功");
list.setAdapter(adapter);
Log.v("breakthrough", "成功运行");
}
}

xml代码:
activity_main.xml
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
xmlns:tools="http://schemas.android.com/tools"
android:layout_width="match_parent"
android:layout_height="match_parent"
android:orientation = "vertical">
<TextView
android:id = "@+id/text"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:text="@string/hello_world" />
<ListView
android:id = "@+id/list"
android:layout_width="match_parent"
android:layout_height="wrap_content"/>
</LinearLayout>

line.xml
<?xml version="1.0" encoding="utf-8"?>
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
android:layout_width="match_parent"
android:layout_height="match_parent"
android:orientation="vertical" >
<TextView
android:id = "@+id/text0"
android:layout_width = "match_parent"
android:layout_height = "wrap_content"/>
<TextView
android:id = "@+id/text"
android:layout_width="match_parent"
android:layout_height="wrap_content" />
</LinearLayout>

第八步:看结果。

结语:由于是我的第一篇博文,在叙述和表达上,都还存在不足,希望大家指正,如果发现文章中存在的描述不规范的地方,请在文章下方评论,我会在看见的第一时间改正。

利用SQLite Expert 工具将Excel数据导入SQLite相关推荐

  1. 利用SQLite Expert 工具将Excel数据导入android数据库.db文件

    1.打开Excel,建立一张表.第一行(主键)一定要设置为id  2. 保存为CSV格式. 3.右键打开方式选择记事本打开我们新建的book.csv.将编码改为UTF-8,防止在模拟器上运行发生文字乱 ...

  2. matlab在曲线给命名,matlab 利用xlsread画图,怎么将一组excel数据导入,通过matlab作图...

    Matlab 循环 for 语句 xlsread EXCEL表格数据导入 画图 Matlab的 xlsread() 函数可以将Excel数据到matlab工作空间,然后就可以根据读入据作图.下面给出操 ...

  3. Android实现Excel数据导入SQLlite,并用ListView展示。并且实现模糊查询

    Android实现Excel数据导入SQLlite,并用ListView展示.实现模糊查询 前言 今天朋友提出一个需求,有一个Excel表格,需要实现把每项数据展示出来,并且可以用某一项来进行查询筛选 ...

  4. 效率最高的Excel数据导入---(c#调用SSIS Package将数据库数据导入到Excel文件中【附源代码下载】)...

     本文目录: (一)背景 (二)数据库数据导入到Excel的方法比较    (三)SSIS的简介    (四)数据库中存储过程示例(SSIS应用需要) (五)Excel模板的制作(这步这么简单,稍微介 ...

  5. python接入excel_使用python将excel数据导入数据库过程详解

    因为需要对数据处理,将excel数据导入到数据库,记录一下过程. 使用到的库:xlrd 和 pymysql (如果需要写到excel可以使用xlwt) 直接丢代码,使用python3,注释比较清楚. ...

  6. 使用python将excel数据导入数据库

    https://www.cnblogs.com/longbigbeard/p/9309180.html 因为需要对数据处理,将excel数据导入到数据库,记录一下过程. 使用到的库:xlrd 和 py ...

  7. mysql 导入 sqlite_Mysql 数据导入SQlite

    SQlite 有一个很强大的管理工具名字叫做Sqlite Developer (官方网站).在Sqlite Developer中有关于数据导入的强大功能.可以将MSSQL Oracl Aeecss等等 ...

  8. 如何将excel表格导入matlab,将Excel数据导入MATLAB中的方法

    在使用MATLAB对矩阵进行数据处理时,为了方便编辑与修改,常常需要先将数据录入到Excel中,然后再将其导入到MATLAB中参与矩阵运算.那么下面小编教你怎么将Excel数据导入MATLAB中. 将 ...

  9. java自定义注解实现excel数据导入导出,设置单元格数据验证与生成省市区多列联动效果

    本文通过自定义注解实现excel数据导入导出.以及设置excel文件中列数据验证,即用户在excel文件中输入数据时就可以对数据格式验证是否符合,节省了程序中过多的数据验证操作,注解还额外提供了一系列 ...

最新文章

  1. php try 中 抛出异常处理,php中try catch捕获异常实例详解
  2. 微软推出Windows XP SP3中文版
  3. css3 loading 效果1
  4. Kafka 消息序列化反序列化
  5. vs2005智能提示快捷键,智能完成消失了怎么调出来。
  6. css的white-space属性导致了空格问题——查看十六进制发现2020变成了c2a0
  7. Windows解压文件名乱码解决方法
  8. 2021年秋季Python程序设计相关课程教材推荐
  9. macbookwps excel颜色填充快捷键_Excel VBA 实例(31) 为VBA代码自定义快捷键
  10. 下一代Windows家庭服务器Vail本地化版本发布
  11. 实不相瞒,我做海外TikTok搬运视频一年的收入,可能是你10年的工资
  12. 华为mate40和vivox50pro+哪个好
  13. php技术座右铭,100句激励自己的座右铭
  14. 将一台笔记本电脑作为另一台笔记本电脑的扩展显示器
  15. UltraISO下载安装方式
  16. 音乐独奏,心情忧伤。
  17. MySQL 计算连续涨跌
  18. 1366 mysql_mysql出现ERROR 1366 (HY000):的解决办法
  19. 小米路由器青春版装linux,小米路由器青春版刷机教程
  20. React map遍历点击获取key

热门文章

  1. 什么叫机械硬盘_西部数据固态硬盘和机械硬盘的区别是什么
  2. 【CV系列】Tamura纹理特征
  3. linux网卡驱动离线安装_解决安装Linux之后没有网卡驱动
  4. 论文阅读:Parameters Sharing Exploration and Hetero-Center based Triplet Loss for Visible-Thermal Person
  5. 17届智能车:使用编码器计算实际路程
  6. 视频监控三大标准比较 ONVIF不负众望
  7. POJ 2993 Emag eht htiw Em Pleh 模拟
  8. Linux下添加新网卡eht3
  9. ettercap主机指纹识别原理
  10. cdn加速华为云obs桶文件配置过程(详细)