尽可能简单:我有一个非常简单的Excel电子表格,只有超过1k的记录。我想将它用作iPhone应用程序的静态数据源。
什么是最好的攻击计划?
我心中的可能性:
1)直接读取XLS作为数据源:是否有一个Obj-C库?
2)将XLS转换为Obj-C具有... CSV的lib格式? XML?一些原生CoreData格式?
3)将其导入MySQLish并从服务器获取XML Feed。
我需要帮助找出这些方法。我从未使用过Excel。
1会很好,2可能是我现在正在做的最好的解决方案,3我几乎知道怎么做但我不确定MySQL是否有XLS导入(我相信MSSQL会这样做)
答案 0 :(得分: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上。
答案 1 :(得分:0)
您可能会考虑使用UIWebView
实例呈现Excel文件,并查看您是否可以在Web视图中访问DOM。
如果你可以访问DOM,你可以使用libxml2
或类似的库来编写一个从中检索数据的解析器。