Kopfzeile nach unten in Zeile 1 verschiebenHallo,
Meine rohe CSV-Datei hat ein seltsames Format, was dazu führt, dass der erste Datenpunkt, den ich benötige, als Header importiert werden muss, was nicht das ist, was ich möchte. Also habe ich oben eine neue, leere Zeile erstellt und versuche herauszufinden, wie ich den Spaltennamen in die leere Zeile ziehen kann, bevor ich die Kopfzeile umbenenne? Jede Hilfe ist willkommen!
names default to here(1);
dt=current data table();
For (i=1, i<=2, i++,
Row(1)[i] = Char(Column Name(i));
);
DatenzugriffBetreff: Kopfzeile nach unten in Zeile 1 verschiebenIch frage mich, ob Sie „Datei“ > „Mehrere Dateien importieren“ verwenden könnten. Der Dialog beim Klicken auf die Schaltfläche „Einstellungen“ scheint eine kopflose CSV-Datei anzusprechen.
Betreff: Kopfzeile nach unten in Zeile 1 verschiebenIch schlage vor, den Eingabeassistenten einmal zu verwenden und dann das von ihm erstellte Skript zu extrahieren und dieses Skript dann zum Einlesen der vielen verschiedenen Dateien zu verwenden.
Betreff: Kopfzeile nach unten in Zeile 1 verschiebenDieses Skript soll über 100 CSV-Dateien in ein bestimmtes Format konvertieren und alle anhängen – daher würde ich Ihren ersten Vorschlag wirklich gerne zum Laufen bringen, wenn ich könnte. Das Klicken auf jede Datei und das Ändern der Einstellungen wird nicht funktionieren, da es so viele gibt.
Ich dachte daran, eine neue leere Zeile hinzuzufügen und die Zellen 1 und 2 mit den Spaltenüberschriften auszufüllen und anschließend die Namen der Spalten zu ändern. Ich habe tatsächlich funktionierenden Code dafür, aber nur, wenn ich ihn im Debugger ausführe. Wenn ich einfach auf „Ausführen“ drücke, um alles auf einmal auszuführen, bleiben die Zellen in der neuen Zeile leer. Wenn ich sie jedoch im Debugger ausführe (den ich ursprünglich geöffnet habe, um das Problem herauszufinden), wird das Skript ordnungsgemäß beendet und die Zellen Ich habe es richtig ausgefüllt, daher bin ich sehr verwirrt darüber, warum das so ist.
Names Default To Here( 1 );
Open( "path to csv file" );
dt = Current Data Table();
dt << addRows( 1, atStart );
a = Char( Column Name( 1 ) );
b = Char( Column Name( 2 ) );
Column( 1 )[1] = a;
Column( 2 )[1] = b;
Betreff: Kopfzeile nach unten in Zeile 1 verschiebenVielleicht möchten Sie eine andere Option ausprobieren.
- Klicken Sie auf Öffnen
- Navigieren Sie zu dem Ordner, in dem sich die CSV-Datei befindet
- Klicken Sie einmal auf die CSV-Datei, die Sie öffnen möchten
- Eine Liste mit Optionen wird angezeigt. Wählen Sie „Daten (mit Vorschau)“.

- Klicken Sie auf Öffnen
- Gehen Sie den Eingabeassistenten durch.Deaktivieren Sie zunächst „Datei enthält Spaltennamen online:“
Betreff: Kopfzeile nach unten in Zeile 1 verschiebenIch habe die von Ihnen genannten Einstellungen wie folgt geändert:
Spaltennamen Start( 0 ),
Datenstarts( 1 ),
Da diese rohe CSV-Datei überhaupt keinen Header hat. Aber es ändert nichts daran, wie es geöffnet wird – Zeile 1 wird leider immer noch als Kopfzeile importiert.Betreff: Kopfzeile nach unten in Zeile 1 verschiebenSie sollten in der Lage sein, die Einstellungen zu ändern, um das seltsame Format in Ihrer CSV-Datei auszugleichen.Unten finden Sie ein einfaches Skript, das eine CSV-Datei öffnet. Sie können die Parameter „Spaltennamen Start()“ und „Datenstarts()“ ändern, damit Sie keine fehlerhaften Überschriften oder Daten erhalten.
Open(
"Path to your csv file",
Import Settings(
End Of Line( CRLF, CR, LF ),
End Of Field( Comma, CSV( 1 ) ),
Strip Quotes( 0 ),
Use Apostrophe as Quotation Mark( 0 ),
Use Regional Settings( 0 ),
Scan Whole File( 1 ),
Treat empty columns as numeric( 0 ),
CompressNumericColumns( 0 ),
CompressCharacterColumns( 0 ),
CompressAllowListCheck( 0 ),
Labels( 1 ),
Column Names Start( 1 ),
Data Starts( 2 ),
Lines To Read( "All" ),
Year Rule( "20xx" )
)
);
Diese JSL-Anweisungen wurden abgerufen, indem man einfach eine CSV-Datei öffnete und dann in die Quelle schaute, indem man mit der rechten Maustaste auf das grüne Dreieck vor dem Quelleneintrag im Tabellenbereich links neben der geöffneten Datentabelle klickte.