iOS 导出CSV文件(CSVWriter)

CSV全称 Comma Separated values,是一种用来存储数据的纯文本文件格式,通常用于电子表格或数据库软件。用Excel或者Numbers都可以导出CSV格式的数据。


CSV文件的规则

   1. 可含或不含列名,含列名则居文件第一行。 

   2. 一行数据不垮行,无空行。

   3. 以半角符号,作分隔符,列为空也要表达其存在。

   4. 列内容如存在,,则用“”包含起来。

   5. 列内容如存在“”则用“”“”包含。

   6. 文件读写时引号,逗号操作规则互逆。

   7. 内码格式不限,可为ASCII、Unicode或者其他。

以上介绍来自于网络!


//保存一个字典

-(void)writeDict:(NSDictionary *)dict forFirst:(BOOL)first{
    
    NSMutableString *str = [NSMutableString  string];

    //第一次写入字典的key值
    if (first) {
        
        for (NSString *key in dict.allKeys) {
            //"," 换列
            [str appendString:[NSString stringWithFormat:@"%@,",key]];
        }
        
    }
    //换行
    [str appendString:@"\n"];
    
    for (NSString *value in dict.allValues) {
        
        [str appendString:[NSString stringWithFormat:@"%@,",value]];
    }
    
    [self writeData:[str dataUsingEncoding:self.encode]];
    
    isFirst = false;
    
}

//保存一个数组

-(void)writeArray:(NSArray *)arr{

    id element = arr[0];
    
    if ([element isKindOfClass:[NSString class]]) {
        
        NSMutableString *str_M = [NSMutableString string];
        
        for (NSString *str in arr) {
            
            [str_M appendString:[NSString stringWithFormat:@"%@,",str]];
        }
        
        [str_M appendString:@"\n"];
        
        [self writeData:[str_M dataUsingEncoding:self.encode]];
    }
    else if ([element isKindOfClass:[NSDictionary class]]){
        
        isFirst = true;
        
        for (NSDictionary *dict in arr) {
            
            [self writeDict:dict forFirst:isFirst];
        }
    
    }
    else if ([element isKindOfClass:[NSArray class]]){
        
        for (NSArray *subArr in arr) {
            
            [self writeArray:subArr];
        }
    
    }
    
}


完整代码:

http://download.csdn.net/detail/wackosix/9151755



你可能感兴趣的:(OC开发,csv,ios,存储,保存,导出)