Domanda

Ho un foglio di calcolo Excel piuttosto semplice, e ho bisogno di utilizzare i dati in un'applicazione per iPhone. Il documento XLS ha 6 colonne e> 200 righe.

Vorrei creare un plist dal documento xls. Come posso convertire una all'altra, a livello di codice?

È stato utile?

Soluzione

Sono in ritardo alla festa, ma ho costruito un programma di utilità desktop che converte CSV ad un plist. È possibile scaricare il binario o utilizzare questo codice, che richiede cCSVParse . Esso utilizza tutto ciò che è nella fila 0, per creare i nomi dei tasti, quindi genera dizionari per ogni riga successiva.

    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];

Altri suggerimenti

Si potrebbe fare questo utilizzando una semplice formula che si copia e incollato in una colonna accanto a ciascuno dei vostri 200+ righe.

Per esempio, supponendo che Colum A contiene un elenco di nomi, e la colonna B contiene un set di età è possibile utilizzare una formula come la seguente per finire con la maggior parte del XML per un dizionario basato plist.

=CONCATENATE("<key>Name</key><string>", A1,"</string><key>Age</key><integer>",B1,"</integer>")

A questo punto selezionare tutte le celle all'interno di questa nuova colonna è possibile copiare e incollare nel blocco note o un altro editor di testo per salvare come file plist (si consiglia di mettere un po 'di testo hardcoded in una cella sopra e sotto le righe 200+ , al fine di ottenere i tag richiesti, ecc, nonché ...

Signore e signori,

Ho provato altre soluzioni consigliate sopra, ma a causa dei caratteri Unicode nella mia lingua (turco) nessuno di loro ha funzionato per me ... tutti i caratteri Unicode erano tutti rotti. Poi ho deciso di fare uno strumento per questo.

I orgogliosi di presentare il modo più semplice per convertire qualsiasi XLS o XLSX o un file CVS ad un plist:

http://exceltoplist.herokuapp.com/

Basta caricare il tuo XLS, XLSX o CSV e scaricare il vostro Apple Plist!

Enjoy!

Nota: A causa della politica di libero banco di Heroku potrebbe richiedere un paio di momenti di sfogliare la pagina. Basta continuare ad aspettare per 5-10 secondi per aprire la pagina.

Per OpenOffice, usare questa formula

=CONCATENATE("<key>number</key><integer>"; A2;"</integer><key>MyString</key><string>";B2;"</string>")

Ho trovato il CONCATENA a lavorare il meglio per questo.

Per il mio scopo ho solo bisogno di convertire i CSV con due colonne in un file plist. Prima colonna è chiavi e secondo sono valori. Così, ho un po 'cambiare Danilo Campos codice come segue:

CSVParser *parser = [CSVParser new];
[parser openFileWithPath:pathAsString];
NSMutableArray *csvContent = [parser parseFile];
[parser closeFile];

if (pathAsString != nil)
{
    NSMutableDictionary *plistOutputArray = [NSMutableDictionary dictionary];

    for (NSArray *array in csvContent)
    {
        NSString *key = (NSString *)([array objectAtIndex:0]);
        NSString *value = (NSString *)([array objectAtIndex:1]);

        [plistOutputArray setObject:value forKey:key];
    }

    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];
}

P.S. Si può trovare il suo codice sorgente iniziale qui - http://code.google.com/p/ danilobits / source / checkout Si prega di notare che, per ottenere il suo lavoro il codice ora è necessario cambiare "Base SDK" a "Ultimo OS X"

http://shancarter.github.io/mr-data-converter/ per convertire xls ad un Json (basta copiare e incollare) (può ri formattarlo rimuovere da uno spazio bianco in http: // jsonviewer.stack.hu/ ). salvare JSON per file di testo denominato: in.json .

Utilizzare il comando plutil in formato JSON per plist

plutil -convert xml1 in.json -o out.plist
Autorizzato sotto: CC-BY-SA insieme a attribuzione
Non affiliato a StackOverflow
scroll top