【发布时间】:2016-06-02 20:57:24
【问题描述】:
我可以将 NSMutableString 字符串(以逗号分隔)作为 CSV 文件上传到 Swift 中的 Google Drive。但是,我想将其保存为 Google 电子表格。
显然,当您使用 queryForFilesInsertWithObject 方法时,它们在 Objective-C 中具有“转换”属性。但是,我找不到这个的 Swift 版本。我这样创建了我的查询:
让查询 = GTLQueryDrive.queryForFilesCreateWithObject(metadata, uploadParameters: uploadParameters)
由于没有q.convert属性,我尝试了以下两种说法:
query.q = "convert=true"
query.q = "convert=YES"
但是,它们都不起作用。
我也尝试将 mimeType 设置为 application/vnd.openxmlformats-officedocument.spreadsheetml.sheet 和 application/vnd.google-apps.spreadsheet,但它们也没有帮助。
我的代码如下:
let data = NSMutableString()
var i = 0
repeat {
data.appendString("\(measures[i]), \(SegmentedControlChoiceValues[i])\n")
i += 1
} while i < measures.count
let dataAsString = data as String
let metadata = GTLDriveFile()
metadata.mimeType = "text/csv"
metadata.name = "Subject01.bar"
let dataToUpload = dataAsString.dataUsingEncoding(NSUTF8StringEncoding)
let uploadParameters = GTLUploadParameters(data: dataToUpload!, MIMEType: metadata.mimeType)
let query = GTLQueryDrive.queryForFilesCreateWithObject(metadata, uploadParameters: uploadParameters)
query.q = "convert=true"
Constants.service.executeQuery(query, completionHandler: { (ticket, insertedFile , error) -> Void in
if error == nil {
print("File Saved: " + metadata.name)
success(createdFileID: insertedFile.identifier)
} else {
print("An error occurred" + error.description)
success(createdFileID: "")
}
})
我将不胜感激。
【问题讨论】:
标签: ios swift csv google-sheets google-drive-api