2009-04-07 1 views
1

HINWEIS Anwendung: diese Frage fast ein Narr:Kraft Excel zu stoppen "Auto-Korrekturen" zu csv Import von Daten

stop Ms Excel auto-formatting numeric strings as numbers

I "fast", weil diese spezielle Frage sagen war nicht gefragt ...

Frage: gibt es eine Möglichkeit zu ein "Schema" in eine CSV- vor dem Excel-Import-Datei anhängen, t Hat Excel erlaubt, die korrekte Formatierung der CSV-Datei ohne zu verstehen, die Nachbearbeitung der CSV-Datei und ohne Endbenutzereingriff erfordert, um die Felder richtig von Hand zu formatieren?

Unter Schema verstehe ich jede Methode zum Generieren einer textbasierten Definition, die irgendwo auf der Maschine von Customer X gespeichert und dann referenziert werden kann, wenn der übliche CSV-Import stattfinden soll, einschließlich, aber nicht beschränkt auf XSD, VBMacro, oder welche Konventionen Excel für diese Art von Operation hat (falls vorhanden).

Hintergrund: Excel hat die Angewohnheit, "hilfreich" zu sein, indem Eingabedaten beim Öffnen aus Nur-Text wie einer CSV-Datei geändert werden.

Ein Beispiel dessen, was damit gemeint ist, jeder der verschiedenen folgenden Links:

http://ask.metafilter.com/28449/Preventing-Excel-applying-time-formatting-to-imported-data 
    http://excel.tips.net/Pages/T002588_Handling_Leading_Zeros_in_CSV_Files.html 
    http://social.msdn.microsoft.com/Forums/en-US/isvvba/thread/aae07b39-865f-4c68-a07f-7cad2dfd6733 
    http://social.msdn.microsoft.com/forums/en-US/vsto/thread/80285088-b476-418f-9613-a2c499c8da7b/ 

Wir müssen regelmäßig CSV-Dateien zu Kunde X senden, und wir haben nicht den Luxus der CSV modifizieren Dateien direkt, um sie in ein Format zu "morphen", das Excel genau wie beabsichtigt rendert.

Darüber hinaus hat der Kunde X nicht immer das Personal, das mit Excel trainiert wurde, um den Import korrekt durchzuführen.

+0

[Kommentieren direkt auf Frage jetzt, dass ich den Vertreter dazu habe.] Was ich nicht verstehe, ist: sicher, die CSVs werden von einer dritten Partei produziert. Aber wenn Sie diese an den Kunden weitergeben müssen, warum können Sie sie dann nicht reparieren? Oder sagen Sie, dass Sie die Quelle einiger Originaldaten sind und der dritte CSV-Produzent zwischen Ihnen und dem Kunden sitzt? –

+0

Yup. Das wars so ziemlich. – dreftymac

Antwort

1

Was ich getan habe, wenn dieses Problem auftritt, ist ein Makro zu erstellen, das nach dem Import ausgeführt wird und die Fixes von Excel "löscht". Es ist keine großartige Lösung, aber es ist ein Workaround.

0

Ich fürchte, ich folge nicht vollständig. Sie sagen, Sie senden die CSV-Dateien, aber Sie können die CSV-Dateien nicht ändern? Also erzeugst du sie nicht? Und Sie können sie nicht verarbeiten, bevor Sie sie an den Kunden senden?

Obwohl ich mir eine solche Situation schwer vorstellen kann, nehme ich an, dass das der Fall ist. Besteht die Möglichkeit, dass der Kunde ein Skript ausführen kann, anstatt Excel direkt zu starten? Können sie beispielsweise trainiert werden, auf ein VBScript doppelzuklicken, statt auf die CSV-Datei doppelzuklicken oder Open aus Excel zu verwenden?

Das ist das nächste, was ich angesichts der Einschränkungen, die Sie beschrieben haben, denken kann, aber ich kann nicht anders, als zu denken, dass es etwas gibt, das Sie weiter stromaufwärts tun können, bevor es Ihre Hände verlässt und in die des Kunden eintritt. Hier

+0

Ja, es gibt immer die Möglichkeit, ein Skript oder eine Batch-Datei oder etwas anderes auszuführen, aber dann gibt es immer das zusätzliche Training, das nötig ist, um diesen noch-einen-anderen-Kludon zu verwenden. Wie viel besser wäre es, wenn dem Kunden nur ein einziges INI-Dateischema gesendet werden könnte, das Excel verwenden könnte, ohne dass der Benutzer noch eine einmalige undokumentierte Skriptumgehung lernen muss? – dreftymac

+0

Es wäre sicherlich besser, aber (anscheinend) Excel hat keine CSV-Schema-Einrichtung. Wenn ich fragen darf, warum können Sie die CSV nicht verarbeiten, bevor Sie sie an den Kunden senden? –

+0

weil sie von einer dritten Partei stammen – dreftymac

0

ist eine weitere Antwort, formatieren die Daten mit Anführungszeichen wie folgt:

Zip, = "00123" usw.

Diese in Excel wie machen wird:

Zip | 0| etc.