{"id":7733,"date":"2011-09-21T22:04:26","date_gmt":"2011-09-21T20:04:26","guid":{"rendered":"http:\/\/www.devapp.it\/wordpress\/?p=7733"},"modified":"2011-09-21T22:04:26","modified_gmt":"2011-09-21T20:04:26","slug":"rssheet-una-classe-alpha-per-scrivere-fogli-di-calcolo-con-le-nostre-applicazioni-iphone-e-ipad","status":"publish","type":"post","link":"https:\/\/www.devapp.it\/wordpress\/rssheet-una-classe-alpha-per-scrivere-fogli-di-calcolo-con-le-nostre-applicazioni-iphone-e-ipad\/","title":{"rendered":"RSSheet: una classe alpha per scrivere fogli di calcolo con le nostre applicazioni iPhone e iPad"},"content":{"rendered":"<p>Oggi vi segnaliamo un progetto, disponibile in versione Alpha, realizzato dal nostro moderatore e autore <strong>Andrea Cappellotto<\/strong>, che in quattro e quattr&#8217;otto ha realizzato un componente che ci permetter\u00e0 di creare file compatibili con Excel del pacchetto Microsoft Office e presto anche Calc del concorrente Open Office: RSSheet!<\/p>\n<p>Il progetto, nonostante sia ancora in versione Alpha, \u00e8 gi\u00e0 operativo e funzionante ed \u00e8 disponibile sul <a href=\"https:\/\/github.com\/andreac\/RSSheet\" target=\"_blank\">canale github<\/a> di Andrea. L&#8217;obiettivo, oltre a quello di proporvi un interessante oggetto da integrare nelle vostre applicazioni iOS, \u00e8 ora quello di trovare developers iPhone e iPad appassionati che abbiano voglia di unirsi a lui e lavorare insieme per estendere le funzionalit\u00e0, fino magari a creare un vero e proprio XLS Reader.<!--more--><\/p>\n<h4>Come integrare e usare RSSheet (Raaden Spread Sheet) nelle nostre app<\/h4>\n<p>Vediamo brevemente come integrare e utilizzare RSSheet all&#8217;interno dei nostri progetti XCode. Per prima dovremo scaricare tutto il necessario, che trovate direttamente al <a href=\"https:\/\/github.com\/andreac\/RSSheet\" target=\"_blank\">Seguente indirizzo<\/a>.<\/p>\n<p><center><br \/>\n<a href=\"http:\/\/www.devapp.it\/wordpress\/wp-content\/uploads\/2011\/09\/Schermata-09-2455825-alle-19.00.09.png\"><img loading=\"lazy\" decoding=\"async\" src=\"http:\/\/www.devapp.it\/wordpress\/wp-content\/uploads\/2011\/09\/Schermata-09-2455825-alle-19.00.09-300x104.png\" alt=\"\" title=\"Schermata 09-2455825 alle 19.00.09\" width=\"300\" height=\"104\" class=\"aligncenter size-medium wp-image-7737\" srcset=\"https:\/\/www.devapp.it\/wordpress\/wp-content\/uploads\/2011\/09\/Schermata-09-2455825-alle-19.00.09-300x104.png 300w, https:\/\/www.devapp.it\/wordpress\/wp-content\/uploads\/2011\/09\/Schermata-09-2455825-alle-19.00.09.png 967w\" sizes=\"auto, (max-width: 300px) 100vw, 300px\" \/><\/a><br \/>\n<\/center><\/p>\n<p>Scaricato il file .zip estraiamo il suo contenuto e trascinamolo dentro il nostro progetto (ricordatevi di copiare i file all&#8217;interno del progetto con la spunta su &#8220;copy items into destination group &#038; file folder).<\/p>\n<p><center><br \/>\n<a href=\"http:\/\/www.devapp.it\/wordpress\/wp-content\/uploads\/2011\/09\/Schermata-09-2455825-alle-19.04.15.png\"><img loading=\"lazy\" decoding=\"async\" src=\"http:\/\/www.devapp.it\/wordpress\/wp-content\/uploads\/2011\/09\/Schermata-09-2455825-alle-19.04.15-173x300.png\" alt=\"\" title=\"Schermata 09-2455825 alle 19.04.15\" width=\"173\" height=\"300\" class=\"aligncenter size-medium wp-image-7738\" \/><\/a><br \/>\n<\/center><\/p>\n<p>Fatto questo non dovremo far altro che importare &#8220;RSworkBook&#8221; sul vostro file di intestazione .h e creare il nostro bellissimo workBook!!:)<\/p>\n<p>Ecco un semplice esempio di come si crea un foglio di calcolo con RSSheet:<\/p>\n<pre lang=\"objc\" line=\"1\" escaped=\"true\">\r\nRSworkBook * folder = [[RSworkBook alloc] init];\r\n    folder.author = @\"andrea cappellotto\";\r\n    folder.version = 1.2;\r\n    \r\n    RSworkSheet * sheet = [[RSworkSheet alloc] initWithName:@\"prova\"];\r\n    \r\n    RSworkSheetRow * row = [[RSworkSheetRow alloc] initWithHeight:20];\r\n    <div class=\"row-wrapper row-column\"><div  class=\"row\"> <div class=\"clear\"><\/div> <\/div> <\/div>;\r\n    <div class=\"row-wrapper row-column\"><div  class=\"row\"> <div class=\"clear\"><\/div> <\/div> <\/div>;\r\n    [sheet addWorkSheetRow:row];\r\n    <div class=\"row-wrapper row-column\"><div  class=\"row\"> <div class=\"clear\"><\/div> <\/div> <\/div>;\r\n    \r\n    RSworkSheetRow * row2 = [[RSworkSheetRow alloc] initWithHeight:24];\r\n    \r\n    RSStyle * styleRow2 = [[RSStyle alloc] init];\r\n    styleRow2.font = [UIFont systemFontOfSize:24];\r\n    styleRow2.size = 24;\r\n    styleRow2.color = [UIColor redColor];\r\n    styleRow2.alignmentV = RSStyleTopAlign;\r\n    styleRow2.alignmentH = RSStyleMiddleAlign;\r\n    \r\n    row2.style = styleRow2;\r\n    [row2 addCellNumber:100];\r\n    [row2 addCellData:[NSDate date]];\r\n    [sheet addWorkSheetRow:row2];\r\n    [row2 release];\r\n    [styleRow2 release];\r\n    \r\n    [folder addWorkSheet:sheet];\r\n    [sheet release];\r\n    \r\n    NSArray *documentPaths = NSSearchPathForDirectoriesInDomains(NSDocumentDirectory, NSUserDomainMask, YES);\r\n\tNSString *documentsDir = [documentPaths objectAtIndex:0];\r\n    [folder writeWithName:@\"prova\" toPath:documentsDir];\r\n    [folder release];\r\n<\/pre>\n<p>Come vedete l&#8217;implementazione \u00e8 davvero molto semplice. Abbiamo innanzitutto creato una cartella di lavoro, quindi abbiamo settato autore e versione.<br \/>\nSuccessivamente 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\u00e0 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.<\/p>\n<p>Il metodo:<\/p>\n<pre lang=\"objc\" line=\"1\" escaped=\"true\">\r\n [folder writeWithName:@\"prova\" toPath:documentsDir];\r\n<\/pre>\n<p>ha il compito infine di creare il file e salvarlo con estensione .xls sulla cartella specificata.<\/p>\n<p>Semplice vero?<\/p>\n<p>Ecco il risultato finale:<\/p>\n<p><center><br \/>\n<a href=\"http:\/\/www.devapp.it\/wordpress\/wp-content\/uploads\/2011\/09\/RSSheet-excel-xcode-devAPP.jpg\"><img loading=\"lazy\" decoding=\"async\" src=\"http:\/\/www.devapp.it\/wordpress\/wp-content\/uploads\/2011\/09\/RSSheet-excel-xcode-devAPP.jpg\" alt=\"RSSheet-excel-xcode-devAPP\" title=\"RSSheet-excel-xcode-devAPP\" width=\"373\" height=\"212\" class=\"aligncenter size-full wp-image-7746\" srcset=\"https:\/\/www.devapp.it\/wordpress\/wp-content\/uploads\/2011\/09\/RSSheet-excel-xcode-devAPP.jpg 373w, https:\/\/www.devapp.it\/wordpress\/wp-content\/uploads\/2011\/09\/RSSheet-excel-xcode-devAPP-300x170.jpg 300w\" sizes=\"auto, (max-width: 373px) 100vw, 373px\" \/><\/a><br \/>\n<\/center><\/p>\n<h4>Conclusioni<\/h4>\n<p>Al momento la versione Alpha di RSSheet \u00e8 compatibile solo con MS Office. Andrea \u00e8 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\u00f2 causare qualche problema, in quanto non sempre il programma utilizzato per aprire i file .xml \u00e8 uno di questi due. Se qualcuno avesse qualche consiglio, si faccia avanti!! \ud83d\ude42<\/p>\n<p>PS: un sentito ringraziamento a <a href=\"https:\/\/twitter.com\/#!\/dark_vivi\" target=\"_blank\">dark_vivi<\/a> che mi ha dato un grosso aiuto con i test della prima release del progetto.<\/p>\n","protected":false},"excerpt":{"rendered":"<p>Oggi vi segnaliamo un progetto, disponibile in versione Alpha, realizzato dal nostro moderatore e autore Andrea Cappellotto,&#8230;<\/p>\n","protected":false},"author":136,"featured_media":0,"comment_status":"open","ping_status":"open","sticky":false,"template":"","format":"standard","meta":{"_acf_changed":false,"footnotes":""},"categories":[30,481],"tags":[931,932,933,930,413],"class_list":["post-7733","post","type-post","status-publish","format-standard","hentry","category-materiale-open-source","category-risorse-utili","tag-codice-esempio-xcode","tag-excel-xcode","tag-fogli-di-calcolo-xcode","tag-materiale-opensource-xcode","tag-programmare-iphone"],"acf":[],"aioseo_notices":[],"_links":{"self":[{"href":"https:\/\/www.devapp.it\/wordpress\/wp-json\/wp\/v2\/posts\/7733","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/www.devapp.it\/wordpress\/wp-json\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/www.devapp.it\/wordpress\/wp-json\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/www.devapp.it\/wordpress\/wp-json\/wp\/v2\/users\/136"}],"replies":[{"embeddable":true,"href":"https:\/\/www.devapp.it\/wordpress\/wp-json\/wp\/v2\/comments?post=7733"}],"version-history":[{"count":11,"href":"https:\/\/www.devapp.it\/wordpress\/wp-json\/wp\/v2\/posts\/7733\/revisions"}],"predecessor-version":[{"id":7735,"href":"https:\/\/www.devapp.it\/wordpress\/wp-json\/wp\/v2\/posts\/7733\/revisions\/7735"}],"wp:attachment":[{"href":"https:\/\/www.devapp.it\/wordpress\/wp-json\/wp\/v2\/media?parent=7733"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/www.devapp.it\/wordpress\/wp-json\/wp\/v2\/categories?post=7733"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/www.devapp.it\/wordpress\/wp-json\/wp\/v2\/tags?post=7733"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}