簡體   English   中英

如何將 excel 文件導入房間 sqlite 數據庫並管理沖突?

[英]How to import and manage conflicts an excel file into room sqlite database?

我想將 excel 文件導入到我的數據庫中,該數據庫使用 android 上的房間庫設計。 我可以使用庫導出數據庫,但對於導入,我需要檢查項目並處理沖突,但我不知道如何。

看看下面的文章會很好。 第1 和第2條重點介紹使用room導入csv using room。

如果您可以使用不同的庫, 也很有幫助。

我建議將此功能分為兩個任務。

  1. 從 CSV/Excel 文件中提取數據
  2. 將這些數據放入數據庫

1 要從 CSV/Excel 文件中提取數據,您可以使用以下代碼。

    CSVReader csvReader = new CSVReader(new FileReader(Environment.getExternalStorageDirectory() + "/" + TableName));
String[] nextLine;
int count = 0;
StringBuilder columns = new StringBuilder();
StringBuilder value = new StringBuilder();
 
while ((nextLine = csvReader.readNext()) != null) {
      // nextLine[] is an array of values from the line
         for (int i = 0; i < nextLine.length - 1; i++) {
             if (count == 0) {
                 if (i == nextLine.length - 2)
                     columns.append(nextLine[i]);
                 else
                     columns.append(nextLine[i]).append(",");
             } else {
                 if (i == nextLine.length - 2)
                    value.append("'").append(nextLine[i]).append("'");
                 else
                    value.append("'").append(nextLine[i]).append("',");
             }
        }
  1. 要將提取的數據放入數據庫,您可以使用以下代碼。

在您的 DAO 中創建一個原始查詢 function。

@RawQuery  
Boolean insertDataRawFormat(SupportSQLiteQuery query);

使用該查詢將數據放入數據庫

SimpleSQLiteQuery query = new SimpleSQLiteQuery("Insert INTO " + tableName + " (" + columns + ") " + "values(" + value + ")",
           new Object[]{});
    getDb().cashDrawerDao().insertDataRawFormat(query);

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM