RSSheet: una classe alpha per scrivere fogli di calcolo con le nostre applicazioni iPhone e iPad
Oggi vi segnaliamo un progetto, disponibile in versione Alpha, realizzato dal nostro moderatore e autore Andrea Cappellotto, che in quattro e quattr’otto ha realizzato un componente che ci permetterà di creare file compatibili con Excel del pacchetto Microsoft Office e presto anche Calc del concorrente Open Office: RSSheet!
Il progetto, nonostante sia ancora in versione Alpha, è già operativo e funzionante ed è disponibile sul canale github di Andrea. L’obiettivo, oltre a quello di proporvi un interessante oggetto da integrare nelle vostre applicazioni iOS, è ora quello di trovare developers iPhone e iPad appassionati che abbiano voglia di unirsi a lui e lavorare insieme per estendere le funzionalità, fino magari a creare un vero e proprio XLS Reader.
Come integrare e usare RSSheet (Raaden Spread Sheet) nelle nostre app
Vediamo brevemente come integrare e utilizzare RSSheet all’interno dei nostri progetti XCode. Per prima dovremo scaricare tutto il necessario, che trovate direttamente al Seguente indirizzo.

Scaricato il file .zip estraiamo il suo contenuto e trascinamolo dentro il nostro progetto (ricordatevi di copiare i file all’interno del progetto con la spunta su “copy items into destination group & file folder).

Fatto questo non dovremo far altro che importare “RSworkBook” sul vostro file di intestazione .h e creare il nostro bellissimo workBook!!:)
Ecco un semplice esempio di come si crea un foglio di calcolo con RSSheet:
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 | RSworkBook * folder = [[RSworkBook alloc] init]; folder.author = @"andrea cappellotto"; folder.version = 1.2; RSworkSheet * sheet = [[RSworkSheet alloc] initWithName:@"prova"]; RSworkSheetRow * row = [[RSworkSheetRow alloc] initWithHeight:20]; [row addCellString:@"prova"]; [row addCellString:@"prova2"]; [sheet addWorkSheetRow:row]; [row release]; RSworkSheetRow * row2 = [[RSworkSheetRow alloc] initWithHeight:24]; RSStyle * styleRow2 = [[RSStyle alloc] init]; styleRow2.font = [UIFont systemFontOfSize:24]; styleRow2.size = 24; styleRow2.color = [UIColor redColor]; styleRow2.alignmentV = RSStyleTopAlign; styleRow2.alignmentH = RSStyleMiddleAlign; row2.style = styleRow2; [row2 addCellNumber:100]; [row2 addCellData:[NSDate date]]; [sheet addWorkSheetRow:row2]; [row2 release]; [styleRow2 release]; [folder addWorkSheet:sheet]; [sheet release]; NSArray *documentPaths = NSSearchPathForDirectoriesInDomains(NSDocumentDirectory, NSUserDomainMask, YES); NSString *documentsDir = [documentPaths objectAtIndex:0]; [folder writeWithName:@"prova" toPath:documentsDir]; [folder release]; |
Come vedete l’implementazione è davvero molto semplice. Abbiamo innanzitutto creato una cartella di lavoro, quindi abbiamo settato autore e versione.
Successivamente abbiamo creato un foglio di lavoro con il nome del foglio. Abbiamo creato una riga in cui potremo aggiungere le nostre celle, che al momento potranno essere di tre tipi (stringa, numero e data). Ad ogni riga potremmo inoltre impostare uno stile (tutte le celle prenderanno quello stile) oppure, volendo, potremmo specificare lo stile di una singola cella. Se non viene specificato nessuno stile verrà utilizzato quello di default. A questo punto non ci resta che aggiungere le righe al foglio di lavoro e il foglio di lavoro alla cartella di lavoro.
Il metodo:
1 | [folder writeWithName:@"prova" toPath:documentsDir]; |
ha il compito infine di creare il file e salvarlo con estensione .xls sulla cartella specificata.
Semplice vero?
Ecco il risultato finale:

Conclusioni
Al momento la versione Alpha di RSSheet è compatibile solo con MS Office. Andrea è riuscito a creare una versione compatibile con entrambi gli editor (Excel e Calc) ma questo richiede di salvare il file in formato .xml e questo può causare qualche problema, in quanto non sempre il programma utilizzato per aprire i file .xml è uno di questi due. Se qualcuno avesse qualche consiglio, si faccia avanti!!
PS: un sentito ringraziamento a dark_vivi che mi ha dato un grosso aiuto con i test della prima release del progetto.

















complimentissimi.. gran lavoro!!! appena ho un attimo giuro che lo provo!