UITableView的电子邮件内容

时间:2013-09-25 15:15:15

标签: objective-c uitableview

有没有办法复制UITableView的内容? 这是因为它与表格在同一视图中,但是,单元格是自定义的(但是只有4行文本,每行包含4个标签)。 理想情况下,我希望通过电子邮件发送类似Excel的表格,但我想找到一种方法来复制每个单元格(并保持它们之间的格式)并以有用的方式发送它。 (这些信息是反馈意见,有几个类别的评分为5分!)

2 个答案:

答案 0 :(得分:0)

没有用于执行此操作的API,您必须自己生成包含表格内容的文件。在桌子上一个接一个地走。

答案 1 :(得分:0)

您可以使用此代码将其保存为CSV(我现在正在查看)

 + (NSString *)returnCreatedCSVFileNameFromColumns:(NSArray *)columns andDetails:(NSArray *)details {
//Create CSV string:
__block NSString *csvString = [[NSString alloc] init];

NSMutableArray *detailsArray = [[NSMutableArray alloc] init];
NSMutableArray *columnsArray = [[NSMutableArray alloc] init];

//Current Column:

for (TableColumn *column in columns) {
    //Add the title for the column we are looping through:
        csvString = [csvString stringByAppendingString:[NSString stringWithFormat:@"%@,", column.displayName]];
}

[columnsArray addObject:csvString];

csvString = @"";

for(Individual *individual in details)
{
    for (TableColumn *tableColumn in columns)
    {
            csvString = [csvString stringByAppendingString:[NSString stringWithFormat:@"%@", [[tableColumn columnValueForIndividual:individual] stringByReplacingOccurrencesOfString:@"," withString:@"/"] ? : @""]];
    }

        csvString = [csvString stringByAppendingString:@","];
    }

    csvString = [csvString stringByAppendingString:@"\n"];
}

[detailsArray addObject:csvString];

csvString = @"";

csvString = [csvString stringByAppendingString:[NSString stringWithFormat:@"%@\n%@", [columnsArray objectAtIndex:0], [detailsArray objectAtIndex:0]]];

//Save csv to docs folder:
NSArray *path = NSSearchPathForDirectoriesInDomains(NSDocumentDirectory, NSUserDomainMask, YES);
NSString *documentsDirectory = [path objectAtIndex:0];
NSString *filePath = [documentsDirectory stringByAppendingPathComponent:@"current_share.csv"];

NSData *csvFileData = [csvString dataUsingEncoding:NSASCIIStringEncoding];

if ([csvFileData writeToFile:filePath atomically:YES]) {
    DLog(@"File written to: %@", filePath);
}
else
    DLog(@"Saving file error");

return filePath;
}

我用它来创建一个CSV文件并返回本地文件路径,然后可以通过电子邮件发送到某个地方。显然你的数据结构可能不同,但你应该能够得到一般的想法......?如果没有,请告诉我(我省略了一些代码)。