代码之家  ›  专栏  ›  技术社区  ›  M. Ryan

Excel工作表到iPhone数据-点A到点B

  •  3
  • M. Ryan  · 技术社区  · 16 年前

    尽可能简单:我有一个非常简单的Excel电子表格,有超过1k的记录。我想将其用作iPhone应用程序的静态数据源。

    我心目中的可能性:

    2) 将XLS转换为Obj-C有库的格式。。。CSV?XML?一些本地CoreData格式?

    3) 将其导入MySQLish并从服务器获取XML提要。

    我需要一些帮助来找出这些方法。我从未使用过Excel。

    1会很好,2可能是我现在做的最好的解决方案,3我非常知道如何做,但我不确定MySQL是否有XLS导入(我相信MSSQL有)。

    2 回复  |  直到 16 年前
        1
  •  1
  •   Danilo Campos    16 年前

    我曾经有过类似的问题。我最后做的是编写一个简单的应用程序,将CSV文件转换成Plist。然后我在应用程序中根据需要使用Plist。此代码使用 cCSVParse . 它将使用第一行中的标题作为键名,为每个连续行创建一个字典数组。输出是一个整洁的plist文件,包含所有数据。使用[NSArray arrayWithContentsOfFile:]将数据弹出到应用程序的内存中。

        CSVParser *parser = [CSVParser new];
    [parser openFileWithPath:pathAsString];
    NSMutableArray *csvContent = [parser parseFile];
    [parser closeFile];
    
    if (pathAsString != nil)
    {
    
        NSArray *keyArray = [csvContent objectAtIndex:0];
    
        NSMutableArray *plistOutputArray = [NSMutableArray array];
    
        NSInteger i = 0;
    
        for (NSArray *array in csvContent)
        {
    
    
    
            NSMutableDictionary *dictionary = [NSMutableDictionary dictionary];
    
            NSInteger keyNumber = 0;
    
            for (NSString *string in array)
            {
    
                [dictionary setObject:string forKey:[keyArray objectAtIndex:keyNumber]];
    
                keyNumber++;
    
            }
    
            if (i > 0)
            {
                [plistOutputArray addObject:dictionary];
            }
    
            i++;
    
        }
    
        NSMutableString *mutableString = [NSMutableString stringWithString:pathAsString];
        [mutableString replaceOccurrencesOfString:@".csv" withString:@".plist" options:nil range:NSMakeRange([mutableString length]-4, 4)];
    
        NSURL *url = [NSURL fileURLWithPath:mutableString];
    
    
        [plistOutputArray writeToURL:url atomically:YES];
    

    我还为此构建了一个非常简单的UI。也许我会清理整个项目,并将其发布在谷歌代码上。

        2
  •  0
  •   Alex Reynolds    16 年前

    您可以考虑使用 UIWebView

    如果您可以访问DOM,那么可以使用 libxml2