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



  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值