如何在android中实现从/到excel导入/导出sqlite数据

时间:2014-08-14 21:40:11

标签: android sqlite android-contentprovider

我正在开发一款需要提供所有架构师资料的应用。该应用程序几乎完成。但最后的任务是关于备份/恢复选项。 我想Backup这样一个文件中的数据,可以在excel或一些简单的视图中查看。然后,bakup也可以用于Restore选项。

4 个答案:

答案 0 :(得分:1)

您可以创建备份功能。 Python有一个很棒的csv库,易于使用。 以及简单的sqlite集成。 只需创建一个Select * from tableToBackUp的函数,该select语句中的每一行都应该是csv中的新行

 import csv
 with open('myCSV.csv', 'wb') as csvfile:
    writer= csv.writer(csvfile, delimiter=' ',
                        quotechar='|', quoting=csv.QUOTE_MINIMAL)
    writer.writerow(rowInSQLITEQuery['columnName']  + rowInSQLITEQuery['columnName2'])

答案 1 :(得分:1)

我的应用还涉及导出数据。我已将数据保存在SQLite数据库中。然后将其存储到SD卡并使用JavaMail API邮寄。可以使用免费下载的.db等软件轻松读取导出的SQLiteBrowser。我假设你已经在你的问题中提到Excel导出了一个数据库。

如果您需要有关将db文件导出到SD卡的帮助/链接,请回复。

答案 2 :(得分:0)

确切的解决方案可能取决于您希望如何从设备卸载数据。

您可能正在寻找:http://developer.android.com/training/basics/data-storage/files.html

在这种情况下,您可以从SQLite表中写入行,就好像它们是' .csv'中的行一样。 Excel可以读取的文件。下面只是将一个字符串写入文件,但您可以使用循环来逐行写入数据库中的行。

String filename = "myfile";
String string = "Hello world!";
FileOutputStream outputStream;

try {
  outputStream = openFileOutput(filename, Context.MODE_PRIVATE);
  outputStream.write(string.getBytes());
  outputStream.close();
} catch (Exception e) {
  e.printStackTrace();
}

FileProvider看起来像一个更复杂的解决方案,但如果您尝试从其他应用程序读取设备上的文件,则可能是您想要的。

http://developer.android.com/training/secure-file-sharing/setup-sharing.html

答案 3 :(得分:0)

简短的回答,没有直接的方法。我为我的应用程序做的是使用第三方库来创建excel文档,我实际上为每个表创建了一个表,并逐表编写它们。 没有"转换方法"在那里会那样做

另一个选项是将.db文件从内部存储复制到备份文件夹并将其复制回来..但不涉及excel