Преобразование Excel в plist в какао и наоборот - PullRequest
3 голосов
/ 04 февраля 2011

Я хочу создать файл plist из файла excel.Структура excel и plist определена.Файл Excel содержит только два столбца, один - «ключ», а другой - соответствующий столбец «значение».Таким образом, окончательный список, который будет сгенерирован, имеет вид:

<key>keyString1</key>
<string>valueString1</string>
<key>keyString2</key>
<string>valueString2</string> 
<key>keyString3</key>
<string>valueString3</string>   
.............................
.............................
.............................
<key>keyStringn</key>
<string>valueStringn</string>

Теперь проблема состоит в том, что строковые значения для «ключей» и «значений» являются строками inturn, т.е. они не являются строкой из одного слова.Они могут занимать более одной строки. Поэтому я не могу использовать здесь структуру файла CSV.

Нужна срочная помощь.

Пожалуйста, предложите, как прочитать значения из таблицы Excel, чтобы оба значения столбцаможет быть отделен. Любой пример кода добавит помощь.

Ответы [ 2 ]

3 голосов
/ 23 июня 2012

Я выполнил это, написав формулу в Excel, чтобы создать для вас текст plist-файла. Это довольно легко.

1) (необязательно) В XCode создайте лист с нужным форматированием в конце. Сохраните, и перейдите к этому в поиске. Откройте его в textWrangler или в текстовом редакторе, чтобы увидеть, какие теги есть для каждого элемента в вашем списке.

Например, вы должны найти что-то вроде:

<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE plist PUBLIC "-//Apple//DTD PLIST 1.0//EN" "http://www.apple.com/DTDs/PropertyList-1.0.dtd">
<plist version="1.0">

<dict>

    <key>First Key Name</key>
    <array>
        <string>Before God we are all equally wise</string>
        <string></string>
        <string>Albert Einstein</string>
        <integer>0</integer>
    </array>

    <key>Second Key Name</key>
    <array>
        <string>Do not worry about your troubles.</string>
        <string></string>
        <string>Albert Einstein</string>
        <integer>0</integer>
    </array>

</dict>
</plist>

2) Я приму: - Ваша электронная таблица представляет собой описание 4 одинаковых свойств для многих строк / объектов / уровней - У вас есть каждый массив в виде отдельной строки в вашей электронной таблице - Одинаковые свойства описаны для каждой строки в одном и том же порядке. - Вы сможете получить доступ к элементам в массиве, зная, по какому индексу они хранятся. то есть я бы получил второго Автора, посмотрев во втором массиве индекс 2.

Ваша таблица должна выглядеть примерно так:

           A                B            C             D                E            F

     /--(Key Names)--\/-------------------(Properties of Each)-----------------\

1    Level Name      |   Quote        |  Notes  |   Author        |  Favorited  | 
     ____________________________________________________________________________
2    First Key Name  |  Before God... |         | Albert Einstein |      0      |
3    Second Key Name |  Do not wor... |         | Albert Einstein |      0      |
.
.
.

Таким образом, каждый из моих объектов получит свой собственный ключ в моем словаре, и каждый объект описывается 3 строками и целым числом.

3) Формула

Справа от последнего столбца в моей электронной таблице я напишу формулу, которая генерирует код xml для этой строки:

(F2) = CONCATENATE ("<key>",A2,"</key> <array> <string>",B2,"</string> <string>",C2,"</string> <string>",D2,"</string> <integer>",E2,"</integer> </array>")

Перетащите правый нижний угол этой ячейки вниз во все остальные строки, и они автоматически заполнят информацию для каждой строки.

Аналогично, в нижней части электронной таблицы под всеми строками вы можете использовать другую формулу для объединения строк. Скажем, у вас было 300 строк:

(F4) = CONCATENATE (F2:F300) 

Теперь скопируйте эти данные в текстовый файл и добавьте последние несколько тегов и информацию о типе документа, которую вы можете скопировать сверху. сохраните с расширением .plist и все готово! Добавьте файл обратно в ваш проект xcode и загрузите его, как и любой другой plist.

0 голосов
/ 16 октября 2011

Чтобы экспортировать данные из Excel в текстовый файл, используйте команду «Сохранить как».

Существует два широко используемых формата текстовых файлов:

Текстовые файлы с разделителями (.txt), в которыхсимвол TAB (код символа ASCII 009) обычно разделяет каждое текстовое поле.

Текстовые файлы с разделенными запятыми значениями (.csv), в которых символ запятой (,) обычно разделяет каждое текстовое поле.

Вы можете изменить используемый символ разделителя.

http://office.microsoft.com/en-us/excel-help/import-or-export-text-txt-or-csv-files-HP010099725.aspx#BMchange_the_delimiter_that_is_used_in_

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