【问题标题】:Exporting Sqlite table data to csv file programatically [duplicate]以编程方式将Sqlite表数据导出到csv文件[重复]
【发布时间】:2012-08-18 05:56:10
【问题描述】:

可能重复:
Exporting Sqlite table data to csv file programatically - xcode iOS 5 (for an ipad app)

我正在开发一个简单的应用程序。我正在使用 sqlite 将数据保存到表中(本地,在应用程序文档文件夹中)。我想有问题地将此表数据导出为 csv 文件并将其通过电子邮件发送给某人。我的意思是我想在 iPad 中转换后物理访问 csv 文件....任何人都可以提供一个示例应用程序来下载吗?还是代码? 请帮忙

【问题讨论】:

    标签: ios sqlite csv


    【解决方案1】:

    这应该给你一个好主意。假设一个有 2 行的表,此代码读取表中的所有值并将它们写入和NSString,然后将其写入文档目录中的 CSV 文件。如果您需要说明如何使此代码适用于您的特定项目,请告诉我。

        NSString *csv = [[NSString alloc] init];
    
        sqlite3 *database;
    
        NSArray *paths = NSSearchPathForDirectoriesInDomains(NSDocumentDirectory, NSUserDomainMask, YES);
        NSString *documentsDirectory = [paths objectAtIndex:0];
        NSString *sqLiteDb
        = [documentsDirectory stringByAppendingPathComponent:@"INSERT_DATABASE_NAME.sqlite3"];
    
    
        if(sqlite3_open([sqLiteDb UTF8String], &database) == SQLITE_OK) {
            const char *sqlStatement = [[NSString stringWithFormat:@"SELECT * FROM myTable"] UTF8String];
            sqlite3_stmt *compiledStatement;
            if(sqlite3_prepare_v2(database, sqlStatement, -1, &compiledStatement, NULL) == SQLITE_OK) {
    
               while(sqlite3_step(compiledStatement) == SQLITE_ROW) { 
                 //this assumes that there are two rows in your database you want to get data from   
                 [csv stringByAppendingFormat:@"%@,%@\n", [NSString stringWithUTF8String:(char *)sqlite3_column_text(compiledStatement, 0)], [NSString stringWithUTF8String:(char *)sqlite3_column_text(compiledStatement, 1)]];
               }
    
              sqlite3_finalize(compiledStatement);
              sqlite3_close(database);
            }else{
                NSLog(@"database error");
            }
        }
    
    NSError *error = nil;
    [csv writeToFile:[documentsDirectory stringByAppendingPathComponent:@"myFile.csv"]
          atomically:YES encoding:NSUTF8StringEncoding error:&error];
    
    [csv release];
    

    【讨论】:

      猜你喜欢
      • 2012-08-13
      • 2012-06-23
      • 1970-01-01
      • 1970-01-01
      • 2016-01-18
      • 1970-01-01
      • 2015-09-30
      • 1970-01-01
      • 2011-01-07
      相关资源
      最近更新 更多