Android开发: 将Sqlite数据库导入Excel表格当中
来源:互联网 发布:华星全站仪传输软件 编辑:程序博客网 时间:2024/06/11 04:54
如题,
如果需要用excel来操作sql中的数据,
那么久必要先将sql中的数据导出
网上大多都是excel数据导入sql来使用和一些基础的操作,
今天就来实现,将sql中的数据导入
先需要导入第三方工具,jxl.jar;Androidstudio可以自己去找,下载,eclipse需要下载手动导入到lib下面(本人还用的es,抱歉了)
jxl.jar资源
http://download.csdn.net/detail/fengdeweilai/9890053
搞清楚基本事项后,接下来上码
创建一个工具类ExcelUtils
private Context context;//上下文对象 private SQLiteDatabase sdb = SQLiteDatabase.openOrCreateDatabase( "/sdcard/xxx.db", null);//打开sdb管理独享 private WritableWorkbook book;//写入excel管理对象public SQliteDataUtils(Context context) {//构造方法 this.context = context; }
context用于去显示完成的toast提示
在一个Sql中有多张表格的时候,每一个type对应一张表,也对应这一个excel文件
public void ExportExcel(int type) { try { String filePath = "/sdcard/"; String s = ""; switch (type) {//用来区分多张表,每张表都来对应一个excel case 1: s = filePath + "1.xls"; break; case 2: s = filePath + "2.xls"; break; case 3: s = filePath + "3.xls"; break; } File file = new File(s);//获取或者创建excel表 String name = tableName(type);//用变量名代替sql表名(用type来对应),这个就不拿出来了 Cursor c = sdb.query(name, null, null, null, null, null, null);//获取真个表数据的cursor对象 SqliteExportExcel(type, name, file, c);//导出excel表 } catch (Exception e) { e.printStackTrace(); } }
/** * @param type-对应的表 * @param typeName-excel中工作表名称 * @param file-对应的excel文件 * @param c-数据库装载调用对象 * @throws IOException * @throws JXLException * @throws WriteException */ public void SqliteExportExcel(int type, String Name, File file, Cursor c) throws IOException, JXLException, WriteException { this.landType = type; // 打开文件 book = Workbook.createWorkbook(file); WritableSheet sheet = book.createSheet(Name, 0);//在excel文件中创建表单,那么为表单名称 String[] ziDuan = c.getColumnNames();//获取所有字段的数据集合 int row = 0;//excel的行数从0开始,为字段头 for (int i = 0; i < ziDuan.length; i++) {// 写入字段头 Label label = new Label(i, row, ziDuan[i]); sheet.addCell(label); } // 便利写入数据 while (c.moveToNext()) {//遍历Cursor row++;//对应excel中的行数,没写一次递增 for (int i = 0; i < ziDuan.length; i++) {//i对应到excel中的每一列 //String s =convertZiDuan(c, type, ziDuan[i], i, c.getString(i));//用于去查找连锁相关的数据 Label label = new Label(i, row, s);//创建数据对象 sheet.addCell(label);//添加写入事件 } } book.write();//开始执行写入 book.close();//关闭资源 }
索引链表字段,这里仅供参考
private String[] zds = "xiangzhen,dcdy,jzlx,jzsj,nhlx".split(","); /** * * @param c-Cursor对象 * @param type-表类型 * @param zd-字段名称,这里一开始对应附表的表名 * @param i-字段在Cursor的当前栏下标 * @param s-需要过滤或者说转换的字符 * @return 过滤处理后的字段值,准备放入excel中的值 */ //字符以自己测试,开发的sql表对应就好,这里只提供逻辑,以免误区 private String convertZiDuan(Cursor c, int type, String zd, int i, String s) { for (int j = 0; j < zds.length; j++) { if (zds[j].equals(zd)) { String zdType = c.getString(c.getColumnIndex(zd)); Cursor cc = sdb.query(zd, null, "type=?", new String[] { zdType }, null, null, null); cc.moveToFirst(); int cur=cc.getColumnIndex("name"); s = cc.getString(cur); cc.close(); } } return s; }
主要由于SqliteExportExcel写入数据,到此,我已经实现了数据的转化!你呢?
阅读全文
0 0
- Android开发: 将Sqlite数据库导入Excel表格当中
- 将excel表格导入数据库
- 将EXCEL表格导入数据库
- Android将Excel表数据导入SQLite数据库
- Android开发当中SQLite数据库的应用
- 将Excel表格数据导入数据库
- excel导入sqlite数据库
- excel导入sqlite数据库
- [Android]导入导出Excel表格到本地SQLite
- 将表格导入数据库
- 将Excel表数据导入Sqlite数据库表
- C# 或Asp.Net 将excel表格导入数据库
- 使用java技术将Excel表格内容导入mysql数据库
- 使用java技术将Excel表格内容导入mysql数据库
- C# 或Asp.Net 将excel表格导入数据库
- 使用java技术将Excel表格内容导入mysql数据库
- 使用java技术将Excel表格内容导入mysql数据库
- 使用java技术将Excel表格内容导入mysql数据库
- 1279: 两点距离
- JDBC为什么要使用PreparedStatement而不是Statement
- SLAM算法解析:抓住视觉SLAM难点,了解技术发展大趋势
- js获取url路径参数
- 08. FTP 文件传输 ❀ 数据包分析工具 Wireshark
- Android开发: 将Sqlite数据库导入Excel表格当中
- ROS(三)动态参数
- Angular实现的增删改查
- 【JZOJ 5049】 腐女的生日
- 把格式为类如2017-01-30 1:30 PM 转化成24小时的格式
- Linux 下 Mutex 的简易包装
- 下面代码创建了几个String对象
- eclipse智能提示
- 网络编程简介