Android sql 数据库的导出到excel中
2016-08-12 15:40
281 查看
从数据库中导出数据
import android.database.Cursor; import android.database.sqlite.SQLiteDatabase; import android.os.Environment; import android.util.Log; import java.io.File; import java.io.IOException; import jxl.Workbook; import jxl.write.Label; import jxl.write.WritableSheet; import jxl.write.WritableWorkbook; import jxl.write.WriteException; import jxl.write.biff.RowsExceededException; /** * Created by Administrator on 2016/8/1. */ public class DatabaseDump { private SQLiteDatabase mDb; public DatabaseDump(SQLiteDatabase db) { mDb = db; } public void exportData() { try { // Log.i("mdb", mDb.getPath()); // get the tables out of the given sqlite database String sql = "SELECT * FROM sqlite_master"; Cursor cur = mDb.rawQuery(sql, new String[0]); cur.moveToFirst(); String tableName; while (cur.getPosition() < cur.getCount()) { tableName = cur.getString(cur.getColumnIndex("name")); // don't process these two tables since they are used // for metadata if (!tableName.equals("android_metadata") && !tableName.equals("sqlite_sequence")) { writeExcel(tableName); } cur.moveToNext(); } } catch (Exception e) { e.printStackTrace(); } } /* 要生成的Excel文件名*/ public void writeExcel(String tableName) { WritableWorkbook wwb = null; String fileName; fileName = Environment.getExternalStorageDirectory().getPath().toString()+File.separator + tableName + ".xls"; File isexist = new File(fileName); if (!isexist.exists()) { try { isexist.createNewFile(); } catch (IOException e) { e.printStackTrace(); } } int r = 0; Log.e("datadump","writeexcel"); String sql = "select * from " + tableName; Cursor cur = mDb.rawQuery(sql, new String[0]); int numcols = cur.getColumnCount(); int numrows = cur.getCount(); // Log.i("row", numrows + ""); // Log.i("col", numcols + ""); String records[][] = new String[numrows + 1][numcols];// 存放答案,多一行标题行 if (cur.moveToFirst()) { while (cur.getPosition() < cur.getCount()) { for (int c = 0; c < numcols; c++) { if (r == 0) { records[r][c] = cur.getColumnName(c); records[r + 1][c] = cur.getString(c); } else { records[r + 1][c] = cur.getString(c); } // Log.i("value" + r + " " + c, records[r][c]); } cur.moveToNext(); r++; } cur.close(); } try { // 首先要使用Workbook类的工厂方法创建一个可写入的工作薄(Workbook)对象 wwb = Workbook.createWorkbook(new File(fileName)); } catch (IOException e) { e.printStackTrace(); } if (wwb != null) { // 创建一个可写入的工作表 // Workbook的createSheet方法有两个参数,第一个是工作表的名称,第二个是工作表在工作薄中的位置 WritableSheet ws = wwb.createSheet("Result", 0); // 下面开始添加单元格 for (int i = 0; i < numrows + 1; i++) { for (int j = 0; j < numcols; j++) { // 这里需要注意的是,在Excel中,第一个参数表示列,第二个表示行 Label labelC = new Label(j, i, records[i][j]); // Log.i("Newvalue" + i + " " + j, records[i][j]); try { // 将生成的单元格添加到工作表中 ws.addCell(labelC); } catch (RowsExceededException e) { e.printStackTrace(); } catch (WriteException e) { e.printStackTrace(); } } } try { // 从内存中写入文件中 wwb.write(); // 关闭资源,释放内存 wwb.close(); } catch (IOException e) { e.printStackTrace(); } catch (WriteException e) { e.printStackTrace(); } } } }
相关文章推荐
- 轉載:利用SQL*Loader将 Excel 数据导出到数据库中 Oracle 10g (10.2.0.2) for NT 企业版
- 通过SQL语句直接实现Excel与数据库的导入导出
- 从数据库中将SQL查询结果导出到Excel中中午乱码及数字问题解决
- 通过SQL语句直接实现Excel与数据库的导入导出
- SQL.MDB数据库记录Rs导出到Excel.Sheet中代码(VBA+VB.Net)
- sql 数据库 导入/导出 excel 的基…
- 导出excel的数据拼接成sql导入到数据库中
- oracle SQL Develop导出数据库中的表格数据到excel
- 利用SQL*Loader将 Excel 数据导出到 Oracle 数据库中
- 利用SQL*Loader将 Excel 数据导出到 Oracle 数据库中(ZZ)
- Android将数据库数据导出成excel格式的文本(CSV)
- binbinyang博客---关于Android数据库导出到Excel
- 利用SQL*Loader将 Excel 数据导出到 Oracle 数据库中(转载)
- 利用SQL*Loader将 Excel 数据导出到 Oracle 数据库中
- 利用SQL脚本把数据库中的数据导出到Excel
- 数据库和Excel间数据互相导入导出的SQL方法
- 通过SQL语句直接实现Excel与数据库的导入导出
- 用sql server导入导出功能 把excel导入到sql的表中,提示导入成功,但是数据库表中并没有数据?
- 使用PL/SQL导出数据库表中的数据为excel格式
- SQL语句导入/导出Excel 数据库