SQlite数据库信息怎么转成excel文件?

用什么方法或者用哪个第三方软件最快?... 用什么方法或者用哪个第三方软件最快? 展开
 我来答
糖糖寳寳
推荐于2016-08-24 · TA获得超过6.4万个赞
知道大有可为答主
回答量:1.8万
采纳率:92%
帮助的人:3986万
展开全部

下面的程序能将SQlite数据库信息怎么转成excel文件:

package zhaoxing.android.tool;    
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;  
import android.database.Cursor;  
import android.database.sqlite.SQLiteDatabase;    
public class DatabaseDump {  
    private String mDestXmlFilename;  
    private SQLiteDatabase mDb;    
  
    public DatabaseDump(SQLiteDatabase db, String destXml) {  
        mDb = db;  
        mDestXmlFilename = destXml;  
    }  
  
    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文件 
     *  
     * @param fileName 
     *            要生成的Excel文件名 
     */  
    public void writeExcel(String tableName) {  
        WritableWorkbook wwb = null;  
        String fileName;  
        fileName = "/sdcard/QuestionData/" + tableName + ".xls";  
        int r = 0;  
  
        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("sheet1", 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();  
            }  
        }  
    }  
}
顺眼还虔诚丶喜鹊8195
2009-10-14 · TA获得超过890个赞
知道小有建树答主
回答量:1287
采纳率:0%
帮助的人:942万
展开全部
1、
导出
实现方式: 将输出重定向至文件.
命令: .output
sqlite> .output a.txt
然后输入sql语句, 查询出要导的数据. 查询后,数据不会显示在屏幕上,而直接写入文件.
2、
或者你下载一些第三方的工具,直接浏览保存为 xls 文件。
SQLiteMan
SQLite Manager
SQLite Database Browser
SqlPro SQL Client
本回答被提问者采纳
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

下载百度知道APP,抢鲜体验
使用百度知道APP,立即抢鲜体验。你的手机镜头里或许有别人想知道的答案。
扫描二维码下载
×

类别

我们会通过消息、邮箱等方式尽快将举报结果通知您。

说明

0/200

提交
取消

辅 助

模 式