Convertire documenti Excel (xls) per un plist
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?
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