Dans mon application iOS, j'ai besoin d'exporter des données au format CSV ou HTML. Comment puis-je faire ceci?Comment convertir des données au format CSV ou HTML sur iOS?
Répondre
RegexKitLite est livré avec un exemple de la façon de lire un fichier csv dans un NSArray de NSArrays et d'aller dans le sens inverse est assez trivial.
Ce serait quelque chose comme ça (avertissement: le code tapé dans le navigateur):
NSArray * data = ...; //An NSArray of NSArrays of NSStrings
NSMutableString * csv = [NSMutableString string];
for (NSArray * line in data) {
NSMutableArray * formattedLine = [NSMutableArray array];
for (NSString * field in line) {
BOOL shouldQuote = NO;
NSRange r = [field rangeOfString:@","];
//fields that contain a , must be quoted
if (r.location != NSNotFound) {
shouldQuote = YES;
}
r = [field rangeOfString:@"\""];
//fields that contain a " must have them escaped to "" and be quoted
if (r.location != NSNotFound) {
field = [field stringByReplacingOccurrencesOfString:@"\"" withString:@"\"\""];
shouldQuote = YES;
}
if (shouldQuote == YES) {
[formattedLine addObject:[NSString stringWithFormat:@"\"%@\"", field]];
} else {
[formattedLine addObject:field];
}
}
NSString * combinedLine = [formattedLine componentsJoinedByString:@","];
[csv appendFormat:@"%@\n", combinedLine];
}
[csv writeToFile:@"/path/to/file.csv" atomically:NO];
ok.Comment puis-je exporter en fichier html? – diana
@Edwin HTML est juste un format texte, alors construisez la chaîne et écrivez-la dans un fichier. Nous ne pouvons pas écrire votre application pour vous ... –
CSV - comma separated values.
habituellement je viens de parcourir les structures de données dans mon application et la sortie d'un ensemble de valeurs par ligne, les valeurs dans ensemble séparées par des virgules.
struct person
{
string first_name;
string second_name;
};
person tony = {"tony", "momo"};
person john = {"john", "smith"};
ressemblerait
tony, momo
john, smith
Cela ne montre pas comment passer de l'enregistrement à la chaîne. –
La solution générale est d'utiliser stringWithFormat:
pour formater chaque ligne. Vraisemblablement, vous écrivez ceci dans un fichier ou une socket, auquel cas vous écririez une représentation de données de chaque chaîne (voir dataUsingEncoding:
) dans le handle de fichier lorsque vous le créerez. Si vous formatez beaucoup de lignes, vous pouvez utiliser les messages initWithFormat:
et explicites release
, afin d'éviter de manquer de mémoire en accumulant trop d'objets chaîne dans le pool de libération automatique. Toujours
Et toujours, toujours, toujours n'oubliez pas d'échapper correctement les valeurs avant de les passer à la méthode de formatage.
Echapper (avec unescaping) est une très bonne chose pour écrire des tests unitaires pour. Écrire une fonction au format CSV sur une seule ligne et avoir des cas de test qui comparent son résultat pour corriger la sortie. Si vous avez un analyseur CSV en main, ou si vous voulez en avoir un, ou si vous voulez juste être sûr que votre échappement est correct, écrivez des tests unitaires pour l'analyse et la déconnexion, ainsi que l'échappement et le formatage. Si vous pouvez commencer avec un seul enregistrement contenant n'importe quelle combinaison de caractères CSV spéciaux et/ou SQL spéciaux, formatez-le, analysez la chaîne formatée et terminez avec un enregistrement égal à celui que vous avez commencé, vous Connaissez votre code est bon.
(Tous les cas ci-dessus également au format CSV et HTML. Si possible, vous pouvez envisager d'utiliser XHTML, de sorte que vous pouvez utiliser des outils de validation XML et parseurs, y compris NSXMLParser.)
- 1. Grattage de plusieurs fichiers html au format CSV
- 2. Comment exporter au format CSV depuis sqlite3 sur iPhone?
- 3. Comment exporter une base de données Access au format CSV?
- 4. ASP.NET MVC - données De retour au format HTML ou XML
- 5. convertir html à ms_word Format
- 6. Exporter la base de données d'accès au format CSV
- 7. Convertir le code en syntaxe au format HTML dans Emacs
- 8. Réponse Type de contenu au format CSV
- 9. Format de date CSV
- 10. Comment convertir des documents au format PDF sur une pile Linux/PHP?
- 11. Comment convertir java.hprof.txt au format binaire hprof?
- 12. Afficher du texte au format html sur IceFaces
- 13. Comment envoyer des données au port en format binaire
- 14. jQuery obtenir les valeurs OPTION restantes au format CSV
- 15. Classe PHP pour exporter des données au format d'importation QuickBooks?
- 16. Comment faire pour convertir les fichiers ODF OpenOffice au format HTML
- 17. Html To Doc (Word) Ou Format RTF
- 18. convertir des fichiers vidéo au format .flv en grails
- 19. comment convertir rtf au format d'image (jpg/png ..)
- 20. Quel codage utiliser pour l'exportation au format CSV?
- 21. Données POST au format JSON
- 22. Existe-t-il une bibliothèque java pour convertir un document du format pdf au format html?
- 23. Exporter un classeur Excel avec de nombreuses feuilles de calcul au format XML ou CSV
- 24. Comment convertir un fichier vdproj au format WiX?
- 25. Comment convertir tab séparé, format de fichier CSV en Python en Python
- 26. Comment charger les données auxquelles on accède depuis la base de données au format html
- 27. iOS Private Documentation sur l'API
- 28. Comment faire pour convertir la page HTML au format d'image dans ASP.Net
- 29. comment exporter des données au format .iif depuis l'application asp.net?
- 30. Python: Comment convertir le texte au format markdown en texte
Pouvez-vous s'il vous plaît être précis sur le type de données ou au moins le type de source de données? –
ok. Plus précisément, j'ai besoin d'exporter des données de la base de données sqlite. – diana