Como criar um arquivo CSV a partir dos dados principais (rápido)
Estou criando um aplicativo com dados principais (1 entidade com 5 atributos) que são exibidos em um tableView. Agora eu gostaria de exportar esses dados para um arquivo CSV (para que eu possa enviar esse arquivo com e-mail do telefone) para que eu possa abri-lo no Excel no Windows. Eu procuro muito, mas não encontrei a resposta certa. Alguém pode me ajudar ou me fornecer um link para uma boa explicação ou tutorial?
Estou construindo em rápido btw.
func createExportString() -> String {
var merk: String?
var ref: String?
var beschrijving: String?
var aantal: String?
var wbs: String?
var export = NSLocalizedString("merk, ref, beschrijving, aantal, wbs \n", comment: "")
merk = Lijst.valueForKey("merk") as? String
ref = Lijst.valueForKey("ref") as? String
aantal = Lijst.valueForKey("aantal") as? String
beschrijving = Lijst.valueForKey("beschrijving") as? String
wbs = Lijst.valueForKey("wbs") as? String
let merkString = "\(merk!)" ?? "-"
let refString = "\(ref!)" ?? "-"
let beschString = "\(beschrijving!)" ?? "-"
let aantalString = "\(aantal!)" ?? "-"
let wbsString = "\(wbs!)" ?? "-"
export += merkString + "," + refString + "," + beschString + "," + aantalString +
"," + wbsString + "\n"
print("This is what the app will export: \(export)")
return export
}
@IBAction func saveToCSV(sender: AnyObject) {
exportDatabase()
}
func exportDatabase() {
var exportString = createExportString()
saveAndExport(exportString)
}
func saveAndExport(exportString: String) {
let exportFilePath = NSTemporaryDirectory() + "export.csv"
let exportFileURL = NSURL(fileURLWithPath: exportFilePath)
NSFileManager.defaultManager().createFileAtPath(exportFilePath, contents: NSData(), attributes: nil)
var fileHandleError: NSError? = nil
var fileHandle: NSFileHandle? = nil
do {
fileHandle = try NSFileHandle(forWritingToURL: exportFileURL)
} catch {
print( "Error with fileHandle")
}
if fileHandle != nil {
fileHandle!.seekToEndOfFile()
let csvData = exportString.dataUsingEncoding(NSUTF8StringEncoding, allowLossyConversion: false)
fileHandle!.writeData(csvData!)
fileHandle!.closeFile()
let firstActivityItem = NSURL(fileURLWithPath: exportFilePath)
let activityViewController: UIActivityViewController = UIActivityViewController(activityItems: [firstActivityItem], applicationActivities: nil)
self.presentViewController(activityViewController, animated: true, completion: nil)
}
}