2009-05-29 6 views
1

J'ai une feuille de calcul Excel qui contient de nombreuses estimations de la taille et du poids d'une autre personne. En outre, certaines personnes ont laissé des commentaires sur les deux cellules d'estimation comme "Cette estimation prend en compte tel ou tel". Je veux prendre les données de la feuille de calcul (j'ai déjà compris comment l'analyser), et le représenter dans un fichier de texte brut de sorte que je puisse facilement l'analyser dans un format structuré (en utilisant Perl, idéalement).Quel format de texte puis-je utiliser pour présenter des données à l'origine dans une feuille de calcul Excel?

Au départ, je pensais utiliser YAML:

Tom: 
    Height: 
    Estimate: 5 
    Comment: Not that confident 
    Weight: 
    Estimate: 7 
    Comment: Very confident 
Natalia: ... 

Mais maintenant, je pense c'est un peu difficile à lire, et je me demandais s'il y avait une certaine représentation tabulaire textuelle qui serait plus facile à lire et toujours parsable.

Quelque chose comme:

PERSON  HEIGHT  Weight 
----------------------------- 
Tom   5   7 
___START_HEIGHT_COMMENT___ 
    We hold these truths to be self-evident, that all men are created equal, that they are endowed by their Creator with certain unalienable Rights, that among these are Life, Liberty and the pursuit of Happiness. That to secure these rights, Governments are instituted among Men, deriving their just powers from the consent of the governed [...] 
Wait, what's this project about again? 
___END_HEIGHT_COMMENT___ 
___START_WEIGHT_COMMENT___ 
    We hold these truths to be self-evident, that all men are created equal, that they are endowed by their Creator with certain unalienable Rights, that among these are Life, Liberty and the pursuit of Happiness. That to secure these rights, Governments are instituted among Men, deriving their just powers from the consent of the governed [...] 
Wait, what's this project about again? 
___END_WEIGHT_COMMENT___ 

Natalia  2   4 
John  3   3 

Y at-il une meilleure façon de le faire?

Répondre

3

CSV (Comma Separated Values).

Vous pouvez même l'enregistrer directement dans ce format depuis Excel, et le lire directement dans Excel à partir de ce format. Pourtant, il est également lisible par l'homme et facilement analysable par machine.

+0

Je ne pense pas que cela prenne en compte les commentaires. –

+0

Vous pouvez simplement utiliser des colonnes "comment" à la place. Le résultat final serait l'ensemble des colonnes suivantes: personne, estimation de la taille, commentaire de la hauteur, estimation du poids, commentaire sur le poids. –

+0

CSV est beaucoup moins lisible que YAML. C'est horrible s'il y a beaucoup de colonnes et la largeur de colonne varie. –

0

En ajoutant à la réponse de Robert, vous pouvez simplement mettre les commentaires dans des colonnes supplémentaires (les virgules seront échappées par le filtre de sortie CSV d'Excel, etc.). Pour en savoir plus sur le format CSV: www.csvreader.com/csv_format.php

0

Aucune raison de ne pas utiliser XML, bien que j'imagine que c'est excessif dans ce cas particulier.

1

Normalement, si je veux capturer des données d'une feuille de calcul sous forme textuelle, j'utilise CSV (qu'Excel peut lire et écrire). Il est facile à générer et à analyser, tout en étant compatible avec de nombreux autres outils, mais il ne figure pas très haut sur le tableau «lisible par l'homme». Il peut être lu mais c'est gênant pour n'importe quoi mais les dossiers simples avec des largeurs de champ égales.

XML est une option, mais YAML est plus facile à lire. Être lisible par l'homme est l'un des objectifs de conception de YAML. Le module YAML::Tiny est un module agréable et léger pour les cas typiques.

Il semble que ce que vous avez en tête soit une table de texte, ou éventuellement un format tabulaire avec des colonnes fixes. Il y a quelques modules sur CPAN qui pourraient être utiles: Text::Table, Text::SimpleTable, others ... Ces modules peuvent générer une représentation facile à lire mais l'analyse sera plus difficile. (Ils sont destinés à la présentation de données, pas au stockage et à la récupération.) Vous devrez probablement construire votre propre analyseur.