你好,歡迎來到IOS教程網

 Ios教程網 >> IOS編程開發 >> IOS開發綜合 >> iOS-解析讀取CSV文件,解析excel文件

iOS-解析讀取CSV文件,解析excel文件

編輯:IOS開發綜合

項目中可能會遇到數據庫中導出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;
}

打印輸出的信息就是程序員需要的數據!

  1. 上一頁:
  2. 下一頁:
蘋果刷機越獄教程| IOS教程問題解答| IOS技巧綜合| IOS7技巧| IOS8教程
Copyright © Ios教程網 All Rights Reserved