【问题标题】:Excel Sheet to iPhone Data -- Point A to Point BExcel 工作表到 iPhone 数据 -- A 点到 B 点
【发布时间】:2009-09-28 19:36:24
【问题描述】:

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

最好的进攻计划是什么?

我心中的可能性:

1) 直接将 XLS 作为数据源读取:是否有用于此的 Obj-C 库?

2) 将 XLS 转换为 Obj-C 具有用于... CSV 的库的格式? XML?一些原生 CoreData 格式?

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

我需要一些帮助来弄清楚这些方法。我从未使用过 Excel。

1 会很好,2 可能是我现在正在做的最好的解决方案,3 我几乎知道该怎么做,但我实际上不确定 MySQL 是否有 XLS 导入(我相信 MSSQL 有) .

【问题讨论】:

    标签: iphone excel iphone-sdk-3.0 core-data


    【解决方案1】:

    我曾经遇到过类似的问题。我最终做的是编写一个简单的应用程序,它采用 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。也许我会清理整个项目并将其发布在 Google Code 上。

    【讨论】:

      【解决方案2】:

      您可能会考虑使用 UIWebView 实例呈现 Excel 文件,并查看是否可以在 Web 视图中访问 DOM。

      如果您可以访问 DOM,您也许可以使用 libxml2 或类似的库来编写一个从中检索数据的解析器。

      【讨论】:

        猜你喜欢
        • 1970-01-01
        • 2016-07-31
        • 2013-03-30
        • 1970-01-01
        • 1970-01-01
        • 2013-07-12
        • 1970-01-01
        • 2013-07-24
        • 1970-01-01
        相关资源
        最近更新 更多