2011-02-04 22 views
2

Excelファイルからplistファイルを作成したいと思います。 excelとplistの構造が定義されています。 Excelファイルには2つの列のみがあり、一方は「キー」で、もう一方は対応する「値」列です。 ので、生成される最終的なplistの形式は次のとおりです。は、ココアでのplist変換に優れています。

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

今の問題は、「キー」と「値」のための文字列値は、これにより、次に文字列であるということである、すなわち、彼らは一つの単語列ではありません。彼らは複数の行に行くかもしれません。私はここではCSVファイル構造を使用することはできません。

緊急のヘルプが必要です。

両方の列の値を分離できるようにExcelシートから値を読み取る方法をお勧めします。すべてのサンプルコードで補助が追加されます。

答えて

0

Excelからテキストファイルにデータをエクスポートするには、[名前を付けて保存]コマンドを使用します。

一般的に使用される2つのテキストファイル形式があります:TAB文字(ASCII文字コード009)は、通常のテキストの各フィールドを分離する

区切りのテキストファイル(.TXT)が、。

カンマ区切りのテキストファイル(.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_

2

私はあなたのためのplistファイルのテキストを作成するために、Excelの数式を書き込むことによって、これを達成。それはかなり簡単です。

1)(オプション) XCodeでは、最後に必要な書式を持つplistを作成します。保存して、ファインダーでこれに行きます。あなたのplistの各要素のタグが何であるかを見ることができるように、textWranglerまたはtext editで開きます。たとえば、あなたが何かを見つける必要があります

<?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つのプロパティの説明を表します - あなたは、スプレッドシートに各配列を別々の行として表示します - 同じ順序ですべての行に対して同じプロパティが記述されています。 - 配列内のアイテムにアクセスするには、それらが格納されているインデックスを知る必要があります。だから私のオブジェクトのそれぞれが、私の辞書に、独自のキーを取得します

  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  | 
. 
. 
. 

:つまり、私はあなたのスプレッドシートは次のようになりますインデックス2.

で二番目の配列を調べて、二者になるだろう各オブジェクトは3つの文字列と整数で記述されます。

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

ドラッグ低級:

3)私のスプレッドシートの最後の列の右側に式

、私はその行のXMLコードを生成する式を記述しますこのセルの右隅を他のすべての行にドラッグし、各行の情報を自動的に入力します。

同様に、スプレッドシートの下部にあるすべての行の下に、別の数式を使用して行を連結することができます。今

(F4) = CONCATENATE (F2:F300) 

テキストファイルにこのデータをコピーし、最後のいくつかのタグを追加し、上からコピーすることができた情報を、doctypeを:あなたは300行を持っていたと言います。拡張子.plistを付けて保存すれば、行きたい!ファイルをxcodeプロジェクトに追加し、他のplistのように読み込みます。

+0

注:Googleスプレッドシートでもこれを行うことができます。そのストリングをつなぎ合わせるだけです! – bkbeachlabs

関連する問題