将 csv 附加到电子邮件 xcode

2024-02-28

我在电子邮件视图中收到了一个有效的 csv 附件。问题是,当我在 iPhone 上打开 csv 时,它会将文件很好地显示在单独的列中。但如果我用 Excel 打开它,它就全部在一个字段中。我需要两列,我该怎么做?尝试用逗号分隔字段,但这不起作用(显然)。以下几行肯定是不正确的,这是我构建字符串以写入文件的地方

[csv appendFormat:@"\n\"Total # of tables: %@\",Total # of objects: %d, \n \n", filteredTables,filteredTableRows]

[csv appendFormat:@"\n\"%@\",%@,", key, value];

这是我用于写入文件的代码(复制的并且似乎是标准的)

BOOL res = [csv writeToFile:fileName atomically:YES encoding:NSUTF8StringEncoding error:&error];
if (!res) {
    NSLog(@"Error %@ while writing to file %@", [error localizedDescription], fileName);
}

为什么它没有按照我想要的方式工作,如何将字符串分成不同的列?谢谢!


对于有兴趣使用 MessageUI.framework 和 MFMailComposeViewControllerDelegate 创建 csv 并将其添加到电子邮件的其他人,以下是您创建新 csv、将其保存到文件并将其全部附加到一个中的部分。你知道,如果你喜欢这类事情

NSString *emailTitle = @"My Email Title";
NSString *messageBody = @"Email Body";

MFMailComposeViewController *mc = [[MFMailComposeViewController alloc] init];
mc.mailComposeDelegate = self;
[mc setSubject:emailTitle];
[mc setMessageBody:messageBody isHTML:NO];
[mc setToRecipients:@[]];

NSMutableString *csv = [NSMutableString stringWithString:@""];

//add your content to the csv
[csv appendFormat:@"MY DATA YADA YADA"];

NSString* filePath = [NSSearchPathForDirectoriesInDomains(NSDocumentDirectory, NSUserDomainMask, YES) objectAtIndex:0];
NSString* fileName = @"MyCSVFileName.csv";
NSString* fileAtPath = [filePath stringByAppendingPathComponent:fileName];

if (![[NSFileManager defaultManager] fileExistsAtPath:fileAtPath]) {
    [[NSFileManager defaultManager] createFileAtPath:fileAtPath contents:nil attributes:nil];
}

BOOL res = [[csv dataUsingEncoding:NSUTF8StringEncoding] writeToFile:fileAtPath atomically:NO];

if (!res) {
    [[[UIAlertView alloc] initWithTitle:@"Error Creating CSV" message:@"Check your permissions to make sure this app can create files so you may email the app data" delegate:nil cancelButtonTitle:@"Okay" otherButtonTitles: nil] show];
}else{
    NSLog(@"Data saved! File path = %@", fileName);
    [mc addAttachmentData:[NSData dataWithContentsOfFile:fileAtPath]
                     mimeType:@"text/csv"
                     fileName:@"MyCSVFileName.csv"];
    [self presentViewController:mc animated:YES completion:nil];
}
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

将 csv 附加到电子邮件 xcode 的相关文章

  • 解包可选值时意外发现 nil - 使用 ALAMOFIRE

    我正在尝试使用 Alamofire 获取 JSON 格式的数据 当我使用一个 URL 时 它工作正常 当我使用另一个 URL 时 我在解包可选值时收到错误 我似乎无法追踪错误来自哪里 我已采取将代码放入 ViewDidLoad 来跟踪错误
  • 方法调用中的插入符[重复]

    这个问题在这里已经有答案了 我正在阅读本教程 并遇到了这行代码 这让我感到困惑 localSearch startWithCompletionHandler MKLocalSearchResponse response NSError er
  • 从基元创建自定义形状

    我正在尝试通过组合原始形状来创建自定义物理形状 目标是创建一个圆形立方体 合适的方法似乎是初始化 形状 变换 我在这里找到的https developer apple com library prerelease ios documenta
  • UIView 重写drawRect 导致视图不遵守maskToBounds

    我正在尝试覆盖drawRect 我的自定义视图中的 UIView 方法 但是 我的视图的边界半径定义为 sub NSBundle mainBundle loadNibNamed ProfileView owner self options
  • 在后台每 X 分钟执行一次函数不起作用

    我使用此代码每 X 分钟执行一次函数 void executeEveryOneMinute self myFunction dispatch after dispatch time DISPATCH TIME NOW int64 t 60
  • 在 iOS 8 中创建通话/双高状态栏?

    是否有调用自定义通话 双高状态栏的标准方法 如果没有 那么构建我自己的功能的最佳起点是哪里 我知道关于如何做到这一点存在一些多年的问题 但没有任何令人满意的答案 有什么新方法可以做到这一点吗 可能在 iOS 8 中 这里没有什么新鲜事 但我
  • 使用 iPhone 控制蓝牙音频设备

    我正在寻找为 iPhone 编写应用程序 它将能够控制汽车中的收音机和 CD 播放器 收音机和播放器具有可用的蓝牙连接 我开始这个问题是为了获得这个地方所需的所有信息 我有几个问题 但如果您发现任何我没有要求的对我开始开发此应用程序不重要的
  • 如何使用存储在 Cocoa Touch 框架中的 Localized.strings?

    我想为 CocoaTouch 框架添加多语言支持 问题 可本地化的字符串我创建的文件仅被使用NSLocalizedString当它是主应用程序及其目标的一部分时 我想将其存储在框架内以将事物分开 我怎样才能使用可本地化的字符串当放置在 Co
  • Cordova iOS 启动画面

    我无法让闪屏停留在页面加载之前 我已经阅读了谷歌搜索第一页 第二页和第三页中的所有条目 我阅读了 stackoverflow 上发布的所有问题 包括一个很好的解释 https stackoverflow com questions 1800
  • iCalendar 邀请未在电子邮件客户端中显示 RSVP 按钮

    我正在使用 PHPMailer 发送电子邮件 我的ICS内容是 BEGIN VCALENDAR METHOD REQUEST VERSION 2 0 PRODID FooBar FooBar Calendar EN BEGIN VEVENT
  • NSString 到 NSDate 的转换得到错误的结果[重复]

    这个问题在这里已经有答案了 可能的重复 NSDateFormatter 的时间错误 https stackoverflow com questions 5466419 wrong time from nsdateformatter NSDa
  • 如何在 Xamarin.iOS 应用程序中创建导航?

    我习惯于与Xamarin Forms 我用 XAML 或 C 创建一个页面并导航到它 但现在这是我第一次尝试创建一个不适合的 iOS 应用程序Xamarin Forms 我在 Windows PC 上的 Visual Studio 中进行此
  • 在 UIView 中绘制彩色文本 -drawRect: 方法

    我正在尝试在我的中绘制彩色文本UIView子类 现在我正在使用单视图应用程序模板 用于测试 除了以下内容外 没有任何修改drawRect method 文本已绘制 但无论我将颜色设置为什么 它始终是黑色的 void drawRect CGR
  • Cordova Phonegap“导出失败”错误代码 70 构建 ios 时

    我目前正在使用 Cordova Phonegap 构建 iOS 应用程序 本来工作正常 但现在运行时出现错误cordova build ios在终端中 我收到以下错误 导出失败 错误 命令的错误代码 70 带有参数的 xcodebuild
  • 将 UIRefreshControl 用于 UIWebView

    我在 iOS 6 中看到了 UIRefreshControl 我的问题是是否可以通过下拉来刷新 WebView 而不是像在邮件中那样让它弹出 我使用 rabih 的代码是 WebView UIRefreshControl refreshCo
  • 如何将数据从一个视图传递到下一个视图?

    我正在制作一个下载排队系统来下载视频 处理下载的排队代码位于另一个视图控制器中 现在我的问题是如何将下载的 URL 传递到另一个视图而不推送到另一个视图控制器 如下所示 ViewConntroller View ViewConntrolle
  • iOS JPEG 图像旋转 90 度

    我正在使用选择器视图从相册中选择图像 我使用上面的代码 void imagePickerController UIImagePickerController picker didFinishPickingMediaWithInfo NSDi
  • TableView 中图像的大小不正确

    我正在使用来自 URL 的图像创建一个表视图 但图像不会调整到所有视图的大小 直到我将其按入行中 知道为什么会发生这种情况吗 这是一个自定义的表格视图 我的代码是 UITableViewCell tableView UITableView
  • 调用了 numberOfRowsInSection 但未调用 cellForRowAtIndexPath

    在我的表视图中节中的行数被调用两次但是cellForRowAtIndexPath不叫 我想在 tableView 中显示 Facebook 好友列表 如果 cellForRowAtIndexPath 调用我的问题就解决了 我在这里的数组中得
  • 我如何用 javascript/jquery 进行两指拖动?

    我正在尝试创建当有两个手指放在 div 上时拖动 div 的功能 我已将 div 绑定到 touchstart 和 touchmove 事件 我只是不确定如何编写这些函数 就像是if event originalEvent targetTo

随机推荐

  • 使用 Python 在文件行中搜索列表条目

    我有一个包含数万行 ASCII 文本的文本文件 我有一个包含数百个要搜索的关键字的列表 单独考虑每一行 最初 如果有任何匹配项 我想返回 打印到屏幕或文件 该行 但最终我想根据匹配数对返回的行进行排名或排序 所以 我的清单是这样的 keyw
  • 无法使用接口确定 i => i.Id 的序列化信息

    首先 我知道这个错误消息已经存在问题 但我还没有找到任何与使用此类查询的接口相关的问题 我目前正在尝试使用 C 驱动程序 2 0 更新 MongoDB 实体 但是 当我尝试构建查询时出现错误 我假设它是Builders
  • .replace() 之后恢复光标位置

    我最大的问题是 替换后 光标默认位于文本区域的末尾 如果我正在打字 那没有问题 但如果我要返回并编辑 那就真的很烦人了 这是我尝试过的 文本区域的 id 是 区域 var el e area position el selectionSta
  • 实体框架默认连接工厂

    我最近使用实体框架 4 3 创建了一个新的 Web 项目 我正在使用数据库优先设计 实体框架将此部分添加到我的 web config 中 它提供了一些信息性错误消息 我在某处读到此代码与代码优先设计相关 我是否需要它 我是否只需删除它
  • 在 pandas dataframe python 中使用 pii 对特定列进行匿名化

    我已经加载了一个带有 json 文件的 s3 存储桶 并将其解析 压平到 pandas 数据帧中 现在我有一个包含 175 列的数据框 其中 4 列包含个人身份信息 我正在寻找一种快速解决方案 对这些列 名称和地址 进行匿名化 我需要保留多
  • Python pickle 协议选择?

    我使用 python 2 7 并尝试腌制一个对象 我想知道 pickle 协议之间的真正区别是什么 import numpy as np import pickle class Data object def init self self
  • 更改node.js安装目录

    我下载了node js v5 6 0 64位的windows msi 当我执行它时 它弹出警告 无效的E 驱动器 并关闭 无法更改安装驱动器 我没有 E 驱动器 而是想安装到外部驱动器 F 当我的外部驱动器设置为 E 时 我认为以前在 E
  • 将 CSV 导入添加到 ROR 应用程序

    我正在在线订购应用程序中添加批量订单的 CSV 导入 基本上我想做的是用 CSV 数据创建一个购物车 我创建了一个导入控制器 require csv class ImportsController lt ApplicationControl
  • 将数据附加到 exe

    这个问题是我之前问题的答案之一的延伸 如何在exe中保存用户注册 C https stackoverflow com questions 5792793 how to save user registration in the exe c
  • Xcode 13 - 无法打开“/Users/test.xcodeproj”中的项目,因为它采用未来的 Xcode 项目文件格式

    在 Xcode 12 5 中打开使用 Xcode13 创建的项目时 我收到以下错误消息 无法打开位于 Users xcodeproj 的项目 因为它是未来的Xcode项目文件格式 使用兼容版本的Xcode调整项目格式 以允许该版本的Xcod
  • 对真实输入数据进行高效的 2D FFT?

    我目前正在使用 opencl 对真实输入数据实现二维 FFT 更具体地说是使用 FFT 的快速 2D 卷积 所以我只需要一些行为足够相似的东西来应用卷积 2D FFT 是在行上使用 1D FFT 然后在列上使用 1D FFT 来实现的 为了
  • 以另一种形式运行过程

    我有一个表单 运行一个在 Outlook 中创建电子邮件并向其附加 pdf 的过程 它的记录源是不可更新的查询 该程序运行良好 我现在想从另一种形式运行该过程 但我不断收到一条消息 说它无法完成 因为记录源不可更新 新形式的编码为 Priv
  • 如何在 Android 手机启动时打开我的 Android 应用程序? [复制]

    这个问题在这里已经有答案了 可能的重复 如何在启动时启动应用程序 https stackoverflow com questions 6391902 how to start an application on startup 我是 And
  • Oracle 函数:复制 wm_concat

    我目前正在 Crystal Reports 中从事一个项目 该项目拒绝使用未记录的函数 WM CONCAT 而该函数在 Oracle 10g 中是允许的 这里是WM CONCAT头信息 WM CONCAT p1 IN VARCHAR2 RE
  • 无法在 ASP.NET Zero 中启用实体历史记录

    我正在使用 ASP NET 零 项目版本 5 1 0和 NET Core 2 0 模板 我正在尝试为我的实体启用实体历史记录 以便我可以查看表中已删除的列值和旧的列值 实体类 Table TestingEntity Audited publ
  • 查找表中的重复行[重复]

    这个问题在这里已经有答案了 我有一个带有这样的表的小型应用程序 tr td img class DeleteButton alt delete src images delete icon png td td class toHide so
  • 如何删除mysql表中的数字字符?

    我有一张桌子 名称为 Actress 在 MySQL 中 我想从列 中删除所有数字字符name select from Actress limit 5 code name 11455 Hanshika Motwani 19 11457 Ka
  • memcached 是否在 Google App Engine 中跨服务器共享?

    在memcached网站上 它说memcached是一个分布式内存缓存 这意味着它可以跨多个服务器运行并保持某种一致性 当我在谷歌应用程序引擎中发出请求时 同一实体组中的请求很可能由同一服务器提供服务 我的问题是 假设有两台服务器为我的请求
  • 为什么 GLSL 的算术函数在 iPad 上与在模拟器上产生如此不同的结果?

    我目前正在寻找在 iOS 设备上运行的 OpenGL ES 2 0 片段着色器代码中的一些错误 代码在模拟器中运行良好 但在 iPad 上它存在巨大问题 并且某些计算产生截然不同的结果 例如我有0 0在 iPad 上和4013 17在模拟器
  • 将 csv 附加到电子邮件 xcode

    我在电子邮件视图中收到了一个有效的 csv 附件 问题是 当我在 iPhone 上打开 csv 时 它会将文件很好地显示在单独的列中 但如果我用 Excel 打开它 它就全部在一个字段中 我需要两列 我该怎么做 尝试用逗号分隔字段 但这不起