将Excel文档(xls)转换为plist

Joh*_*how 25 iphone xls plist

我有一个非常简单的Excel电子表格,我需要在iPhone应用程序中使用这些数据.xls文档有6列,> 200行.

我想从xls文档创建一个plist.如何以编程方式将一个转换为另一个?

Dan*_*pos 47

我迟到了,但我建立了一个桌面实用程序,将CSV转换为plist.您可以下载二进制文件或使用此代码,这需要cCSVParse.它使用第0行中的任何内容创建键名,然后为每个连续行生成字典.

    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];
Run Code Online (Sandbox Code Playgroud)


小智 39

您可以使用一个简单的公式来执行此操作,该公式可以复制并粘贴在每个200多行旁边的列中.

例如,假设colum A包含一个名称列表,而B列包含一组匹配的年龄,您可以使用如下所示的公式来结束基于plist的字典的大部分XML.

=CONCATENATE("<key>Name</key><string>", A1,"</string><key>Age</key><integer>",B1,"</integer>")
Run Code Online (Sandbox Code Playgroud)

然后,您可以选择此新列中的所有单元格,您可以将其复制并粘贴到记事本或其他文本编辑器中,以将其另存为plist文件(您可能需要将一些硬编码文本放入200多行上下的单元格中,按顺序获得所需的标签等...

  • 这比编写脚本要快得多.而且,实际的"答案"对我来说不起作用,但确实如此.谢谢. (2认同)

sca*_*guy 26

女士们先生们,

我尝试了上面的任何其他推荐的解决方案,但由于我的语言(土耳其语)中的Unicode字符,没有一个为我工作...所有unicode字符都被打破.然后我决定为此制作一个工具.

我自豪地介绍了将任何XLS或XLSX或CVS文件转换为plist的最简单方法:

http://exceltoplist.herokuapp.com/

只需上传您的XLS,XLSX或CSV并下载您的Apple Plist!

请享用!

注意:由于Heroku的免费dyno政策,可能需要一些时间来浏览该页面.只需等待5-10秒即可打开页面.