Excel ドキュメント (xls) を plist に変換する
質問
非常に単純な Excel スプレッドシートを持っており、そのデータを iPhone アプリで使用する必要があります。xls ドキュメントには 6 列、200 行以上あります。
xlsドキュメントからplistを作成したいと考えています。プログラム的に一方をもう一方に変換するにはどうすればよいですか?
解決
パーティーには遅れましたが、CSV を plist に変換するデスクトップ ユーティリティを作成しました。ダウンロードできます バイナリ または、このコードを使用します。これには、 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以上の行のそれぞれの横に列をコピー簡単な数式を使用してダウン貼り付け、これを行うことができます。
たとえば、colum Aと仮定すると名前のリストが含まれており、列Bを使用すると、plistのベースの辞書のためのXMLのほとんどで終わるために、以下のような式を使用することができます年齢の一致したセットが含まれています。
=CONCATENATE("<key>Name</key><string>", A1,"</string><key>Age</key><integer>",B1,"</integer>")
あなたがコピーしてメモ帳またはplistファイルとして保存するには、別のテキストエディタに貼り付けることができ、この新しい列内のすべてのセルを選択し、これで、(あなたはあなたの200の以上の行の上および下のセルにいくつかのハードコードされたテキストを配置することもできます、必要なタグを取得するためになどにも...
皆さん、
私はそれらの(トルコ)どれも私のために働いていない...すべてのUnicode文字がすべて壊れていた私の言語で超えるがあるため、Unicode文字の任意のその他の推奨ソリューションを試してみました。それから私は、このためのツールを作ることにしました。
私は誇らしげにPLISTに任意のXLSまたはXLSXまたはCVSファイルを変換する最も簡単な方法を提示します
http://exceltoplist.herokuapp.com/する
の のちょうどあなたのXLS、XLSXまたはCSVをアップロードし、アップルのplistをダウンロード!のの
お楽しみください!
注:Herokuのの無料ダイノ政策のそれがページを閲覧するためにしばらく時間がかかる場合がありますので。ただ、ページを開くには、5〜10秒間待たせます。
OpenOfficeのために、この式を使用する
=CONCATENATE("<key>number</key><integer>"; A2;"</integer><key>MyString</key><string>";B2;"</string>")
私は、このために最適に動作するCONCATENATEを発見しました。
私の目的のために私はplistファイルに2つのカラムを持つCSVに変換する必要があります。 最初の列は、キーと第2の値です。だから、私は少し、次のようのダニーロ・カンポスのコードを変更します:
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 /ソース/チェックアウトする 今あなたは、「最新のOS X」を「ベースSDK」を変更する必要があり、彼のコードの作業を取得することに注意してください。
http://shancarter.github.io/mr-data-converter/を使用しますA> xls
(単にコピー&ペースト)(それはによって HTTPでホワイトスペースを削除するフォーマットを再可能にJson
を変換するには:// jsonviewer.stack.hu/する)。名前のテキストファイルにJSONを保存:のin.jsonの。
のplistにフォーマットJSONにplutil
コマンドを使用します。
plutil -convert xml1 in.json -o out.plist