私は非常に単純なExcelスプレッドシートを持っており、iPhoneアプリでデータを使用する必要があります。 xlsドキュメントには6列、> 200行があります。
Xlsドキュメントからplistを作成したいと思います。プログラムで一方を他方に変換するにはどうすればよいですか?
パーティーに遅れましたが、CSVをplistに変換するデスクトップユーティリティを作成しました。 binary をダウンロードするか、このコードを使用できます。これには cCSVParse が必要です。行0にあるものを使用してキー名を作成し、連続する各行の辞書を生成します。
CSVParser *parser = [CSVParser new];
[parser openFileWithPath:pathAsString];
NSMutableArray *csvContent = [parser parseFile];
[parser closeFile];
if (pathAsString != nil)
{
NSArray *keyArray = [csvContent objectAtIndex:0];
NSMutableArray *plistOutputArray = [NSMutableArray array];
NSInteger i = 0;
for (NSArray *array in csvContent)
{
NSMutableDictionary *dictionary = [NSMutableDictionary dictionary];
NSInteger keyNumber = 0;
for (NSString *string in array)
{
[dictionary setObject:string forKey:[keyArray objectAtIndex:keyNumber]];
keyNumber++;
}
if (i > 0)
{
[plistOutputArray addObject:dictionary];
}
i++;
}
NSMutableString *mutableString = [NSMutableString stringWithString:pathAsString];
[mutableString replaceOccurrencesOfString:@".csv" withString:@".plist" options:nil range:NSMakeRange([mutableString length]-4, 4)];
NSURL *url = [NSURL fileURLWithPath:mutableString];
[plistOutputArray writeToURL:url atomically:YES];
これは、200以上の各行の横にある列をコピーして貼り付ける簡単な数式を使用して行うことができます。
たとえば、列Aに名前のリストが含まれ、列Bに一致する年齢のセットが含まれているとすると、次のような式を使用して、plistベースの辞書のほとんどのXMLを作成できます。
=CONCATENATE("<key>Name</key><string>", A1,"</string><key>Age</key><integer>",B1,"</integer>")
次に、この新しい列内のすべてのセルを選択し、コピーしてメモ帳または別のテキストエディターに貼り付け、plistファイルとして保存します(ハードコードされたテキストを200行以上の上下のセルに順番に配置することをお勧めします必要なタグなども取得するには...
皆様、
上記の他の推奨される解決策を試しましたが、私の言語(トルコ語)のUnicode文字のため、どれもうまくいきませんでした...すべてのUnicode文字がすべて壊れていました。それから私はこのためのツールを作ることにしました。
XLS、XLSX、またはCSVをアップロードし、Apple Plist!
楽しい!
注:Herokuの無料のdynoポリシーにより、ページを閲覧するのに少し時間がかかる場合があります。ページを開くまで5〜10秒待ちます。
OpenOfficeの場合、この式を使用します
=CONCATENATE("<key>number</key><integer>"; A2;"</integer><key>MyString</key><string>";B2;"</string>")
私の目的では、2列のCSVをplistファイルに変換する必要があります。最初の列はキーで、2番目の列は値です。したがって、Danilo Camposコードを次のように少し変更します。
CSVParser *parser = [CSVParser new];
[parser openFileWithPath:pathAsString];
NSMutableArray *csvContent = [parser parseFile];
[parser closeFile];
if (pathAsString != nil)
{
NSMutableDictionary *plistOutputArray = [NSMutableDictionary dictionary];
for (NSArray *array in csvContent)
{
NSString *key = (NSString *)([array objectAtIndex:0]);
NSString *value = (NSString *)([array objectAtIndex:1]);
[plistOutputArray setObject:value forKey:key];
}
NSMutableString *mutableString = [NSMutableString stringWithString:pathAsString];
[mutableString replaceOccurrencesOfString:@".csv" withString:@".plist" options:nil range:NSMakeRange([mutableString length]-4, 4)];
NSURL *url = [NSURL fileURLWithPath:mutableString];
[plistOutputArray writeToURL:url atomically:YES];
}
P.S.彼の最初のソースコードはここにあります--- http://code.google.com/p/danilobits/source/checkout 彼のコードを機能させるには、「BaseSDK」を変更する必要があることに注意してください。 「最新のOSX」へ
CONCATENATEがこれに最適であることがわかりました。
http://shancarter.github.io/mr-data-converter/ を使用してxls
をJson
に変換します(コピーして貼り付けるだけです)(再フォーマットできます) http://jsonviewer.stack.hu/ )の空白を削除します。 jsonを次の名前のテキストファイルに保存します:in.json。
plutil
コマンドを使用して、jsonをplistにフォーマットします
plutil -convert xml1 in.json -o out.plist