Foglio Excel su dati iPhone – Punto A alla Punto B

Il più semplice ansible: ho un foglio di calcolo molto semplice di Excel con poco più di 1k record. Voglio utilizzare questo come una risorsa dati statica per un'applicazione iPhone.

Qual è il miglior piano d'attacco?

Possibilità nella mia mente:

1) Leggere l'XLS direttamente come origine dati: c'è un Obj-C lib per questo?

2) Conversione di XLS in un formato che Obj-C ha un lib per … CSV? XML? qualche formato CoreData nativo?

3) importrla in qualcosa MySQLish e semplicemente ricevere un feed XML da un server.

Avrei bisogno di qualche aiuto per capire questi approcci. Non ho mai lavorato con Excel.

1 sarebbe bello, 2 sarebbe probabilmente la soluzione migliore per quello che sto facendo adesso e 3 ho capito molto da fare, ma non sono in realtà sicuro se MySQL ha un'importzione di XLS (credo che sia MSSQL).

Ho avuto un problema simile a un certo punto. Quello che ho finito per fare era scrivere una semplice applicazione che ha preso un file CSV e convertito in un Plist. Poi ho usato il Plist come necessario nell'app. Questo codice utilizza cCSVParse . Utilizzerà le intestazioni nella prima row come i nomi delle chiavi per creare una matrix di dizionari per each row successiva. L'output è un file plist ordinato con tutti i tuoi dati. Utilizza [NSArray arraysWithContentsOfFile:] per visualizzare i dati nella memory dell'applicazione.

CSVParser *parser = [CSVParser new]; [parser openFileWithPath:pathAsString]; NSMutableArray *csvContent = [parser parseFile]; [parser closeFile]; if (pathAsString != nil) { NSArray *keyArray = [csvContent objectAtIndex:0]; NSMutableArray *plistOutputArray = [NSMutableArray arrays]; NSInteger i = 0; for (NSArray *arrays in csvContent) { NSMutableDictionary *dictionary = [NSMutableDictionary dictionary]; NSInteger keyNumber = 0; for (NSString *string in arrays) { [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]; 

Ho anche costruito un UI piuttosto semplice per questo. Forse ripulirò l'integer progetto e lo pubblicherò su Google Code.

Potresti esaminare il rendering del file di Excel con un'istanza UIWebView e vedere se puoi accedere al DOM all'interno della visualizzazione web.

Se è ansible accedere al DOM, è ansible utilizzare libxml2 o una libreria simile per scrivere un parser che recupera i dati da esso.