Как прочитать EXCEL XLSX файл со строковыми значениями в iOS? - PullRequest
0 голосов
/ 31 мая 2019

Я искал по всему Интернету часами и часами, и я пробовал так много решений, но мне никогда не удавалось решить эту проблему.Так что, в основном, я являюсь разработчиком java-студентов и пытаюсь создать приложение для Android и iOS.В Android все просто отлично работает, если вы когда-нибудь найдете проблему, ЛЕГКО ПИСТИ!Нет проблем, чтобы найти решение.А для iOS?Ну .. держу пари, ты знаешь ответ!Это чертовски сложно собрать вещи и работать должным образом.

Пробовал несколько библиотек из git, все они дают мне ошибку, так как либо могут обрабатывать только целые числа, либо есть проблемы с чем-то другим.Однако ни одно из этих руководств не работает с моим мозгом.

Интересно, может ли кто-нибудь дать мне фрагмент кода или руководство, как просто прочитать файл xls / xlsx / csv и сохранитьзначения в массив.У меня есть два столбца, и я хотел бы сохранить их в двух разных массивах.Файл Excel содержит тысячи координат, поэтому один массив для широты и один массив для долготы.

Надеюсь, у кого-нибудь есть подсказка или какое-то решение для этого!

Спасибо

1 Ответ

0 голосов
/ 31 мая 2019

Я бы пошел в 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"]

2-й массив будет естественным для этого (если вы по-прежнему настроены на два отдельных массива, см. Редактирование в конце). Проверьте этот ответ, как он будет работать (код сверху приведен ниже): Swift добавить к 2d массив

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])
        }
     }
 }

Так что в основном ваш код, вам нужно будет смешать первый и второй фрагменты кода в этом ответе Объявите массив (ы), затем используйте библиотеку csv, как в одном из примеров на странице README, затем используйте функцию добавления Swift, чтобы добавить координаты широты и долготы (вы должны сделать это на строке, заменяя print ("(строка ) ") в первом примере).

Я лично не пробовал этот репозиторий GitHub, но, основываясь на поднятых проблемах и звездах, я думаю, он должен работать.

Удачи!

Редактировать: только что понял, что вы хотели два разных массива. В этом случае вы просто объявите два строковых массива и вместо print ("(row)") из первого фрагмента кода вы добавите широту к одному массиву и долготу к другому массиву, как показано во втором фрагменте кода.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...