如何在iOS中使用字符串值读取EXCEL XLSX文件?

时间:2019-05-31 13:49:39

标签: ios swift excel

我已经在互联网上搜索了好几个小时,并且尝试了很多解决方案,但是我从来没有成功解决过这个问题。因此,基本上,我是一名Java学生开发人员,正在尝试为android和iOS创建一个应用程序。在Android中,一切正常,如果发现问题,请轻松!没问题,找到解决方案。但是对于iOS?好吧..我敢打赌你知道答案!很难将所有东西放在一起并正常工作。

从git尝试了多个库,它们全部给我一个错误,因为那里要么只能处理整数,要么存在其他问题。但是,这些指南似乎都不适合我的大脑。

我想知道的是,是否有人可以给我一个代码片段,或者以某种方式给出关于如何读取xls / xlsx / csv文件并将值保存到数组中的指南。我有两列,想将它们保存到两个不同的数组中。 Excel文件包含数千个坐标,因此一个数组用于纬度,一个数组用于经度。

希望有人为此提供提示或解决方案!

谢谢

1 个答案:

答案 0 :(得分:0)

我会进入excel并将您的xslx文件转换为csv文件。然后,我将尝试使用该库:https://github.com/yaslab/CSV.swift/blob/master/README.md

从该库的文档中可以处理字符串。

在该github页面上,有多种方法可以生成此数组(将csv作为Swift字符串或文件)。这是该GitHub存储库中文件的示例:

import CSV

let csvString = "1,foo\n2,bar"
let csv = try! CSVReader(string: csvString)
while let row = csv.next() {
    print("\(row)")
}
// => ["1", "foo"]
// => ["2", "bar"]

一个二维数组自然是很自然的(如果您仍然设置在两个单独的数组上,请参阅最后的编辑内容)。请查看此答案以了解其工作原理(下面的顶部答案中的代码):{ {3}}

private var cards = [[Int]]()

init() {
     //Fill cards array by adding all cards
     for i in 0...12{
         for x in 0...3{
            cards.append([i+2,x])
        }
     }
 }

因此,基本上,您需要在此答案中混合使用第一和第二代码段。声明数组,然后使用README页面上的示例之一中的csv库,然后使用Swift的append函数添加纬度和经度坐标(您可以在替换print(“ )”)。

我还没有亲自尝试过这个GitHub存储库,但是基于已经提出的问题,我猜这应该可行。

祝你好运!

编辑:刚刚意识到您想要两个不同的数组。在那种情况下,您只需声明两个字符串数组,而不是第一个代码段中的print(“(row)”),您可以将纬度附加到一个数组,将经度附加到另一个数组,如第二个代码段所示。 / p>