iOS-解析讀取CSV檔案,解析excel檔案

來源:互聯網
上載者:User

標籤:

項目中可能會遇到資料庫中匯出CSV格式資料,類似於如:

需要將csv資料匯入進程式中使用,或者寫入本機資料庫檔案中.

*什麼是CSV?
CSV,即逗號分隔值(Comma-Separated Values)。有時也稱為字元分隔值,因為分隔字元也可以不是逗號,可以是分號;),其檔案以純文字形式儲存表格式資料(數字和文本)。
這種檔案格式經常用來作為不同程式之間的資料互動的格式。
CSV格式資料的結構類似表格,不同的記錄佔用一行,一行中的欄位用“,”(逗號)分隔。
在xcode中, csv格式的檔案是一種占記憶體很小的文字文件,它的特點:

     (1)開頭是不留空  ,以行為單位。    (2)每條記錄佔一行,以逗號為分隔字元。列為空白也要表達其存在。    (3)可含或不含列名,如果含列名則居檔案第一行。    (4)一行資料不跨行,無空行。    (5)欄位中包含有逗號符,該欄位必須用雙引號括起來。    (6)欄位中包含有分行符號,該欄位必須用雙引號括起來。    (7)欄位前後包含有空格,該欄位必須用雙引號括起來。( a b c ==> "a b c")    (8)欄位中的雙引號,用兩個雙引號表示。( 我說:"abc"。 ==> 我說:""abc""。 )    (9)欄位中如果有雙引號,該欄位必須用雙引號括起來。( 我說:"abc"。 ==> "我說:""abc""。" 

簡單瞭解CSV檔案之後程式員要做的當然就是解析csv到記憶體中:
在iOS中,可以利用以下類進行解析,將其解析成為NSArray數組:

+(NSArray *)readCSVData{    NSMutableArray *_InfoArray;    if (_InfoArray) {        return NULL;    }    _InfoArray=[[NSMutableArray alloc]init];    NSString *filepath=[[NSBundle mainBundle] pathForResource:@"員工表" ofType:@"csv"];    FILE *fp=fopen([filepath UTF8String], "r");    if (fp) {        char buf[BUFSIZ];        fgets(buf, BUFSIZ, fp);        while (!feof(fp)) {            char buf[BUFSIZ];            fgets(buf, BUFSIZ, fp);            // 處理文本資訊 轉化 成 數組檔案            NSString *s=[[NSString alloc]initWithUTF8String:(const char *)buf];            NSString *ss=[s stringByReplacingOccurrencesOfString:@"\r" withString:@""];            ss=[ss stringByReplacingOccurrencesOfString:@"\n" withString:@""];            NSArray *a=[ss componentsSeparatedByString:@","];            [_InfoArray addObject:a];        }    }    NSLog(@"%@",_InfoArray);    return _InfoArray;}

列印輸出的資訊就是程式員需要的資料!

iOS-解析讀取CSV檔案,解析excel檔案

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在5個工作日內處理。

如果您發現本社區中有涉嫌抄襲的內容,歡迎發送郵件至: info-contact@alibabacloud.com 進行舉報並提供相關證據,工作人員會在 5 個工作天內聯絡您,一經查實,本站將立刻刪除涉嫌侵權內容。

A Free Trial That Lets You Build Big!

Start building with 50+ products and up to 12 months usage for Elastic Compute Service

  • Sales Support

    1 on 1 presale consultation

  • After-Sales Support

    24/7 Technical Support 6 Free Tickets per Quarter Faster Response

  • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.