it-swarm.com.de

Excel CSV. Datei mit mehr als 1.048.576 Datenzeilen

Ich habe eine CSV-Datei erhalten, die mehr enthält, als MAX Excel verarbeiten kann, und ich muss wirklich in der Lage sein, alle Daten zu sehen. Ich verstehe und habe die Methode des "Aufteilens" ausprobiert, aber es funktioniert nicht.

Einige Hintergrundinformationen: Die CSV-Datei ist eine Excel-CSV-Datei, und die Person, die die Datei angegeben hat, hat angegeben, dass es ungefähr 2m Datenzeilen.

Wenn ich es in Excel importiere, erhalte ich Daten bis zur Zeile 1,048,576, dann importiere es erneut in eine neue Registerkarte, beginnend in Zeile 1,048,577 in den Daten, aber es gibt mir nur eine Zeile, und ich weiß, dass es mehr sein sollte (nicht nur wegen der Tatsache, dass "die Person" sagte, es gibt mehr als 2 Millionen, aber wegen der Informationen in den letzten Zeilengruppen)

Ich dachte, dass der Grund dafür vielleicht darin liegt, dass mir die CSV-Datei als Excel-CSV-Datei zur Verfügung gestellt wurde und somit alle Informationen nach 1,048,576 ist verloren (?).

Muss ich nach einer Datei im SQL-Datenbankformat fragen?

42
Ostrich_Cloud

Sie sollten versuchen abgrenzen es können bis zu 2 Milliarden Zeilen und 2 Millionen Spalten sehr schnell geöffnet werden und es gibt auch eine kostenlose 15-Tage-Testversion. Macht den Job für mich!

22
skyliner28

Ich würde vorschlagen, die CSV-Datei in MS-Access zu laden.

Mit MS-Excel können Sie dann eine Datenverbindung zu dieser Quelle herstellen (ohne die Datensätze tatsächlich in ein Arbeitsblatt zu laden) und eine verbundene Pivot-Tabelle erstellen. Sie können dann praktisch unbegrenzt viele Zeilen in Ihrer Tabelle haben (abhängig von Prozessor und Speicher: Ich habe jetzt 15 Millionen Zeilen mit 3 GB Speicher).

Ein weiterer Vorteil ist, dass Sie jetzt eine aggregierte Ansicht in MS-Access erstellen können. Auf diese Weise können Sie Übersichten aus Hunderten von Millionen Zeilen erstellen und diese dann in MS-Excel anzeigen (beachten Sie die 2-Gbit-Beschränkung von NTFS-Dateien unter 32-Bit-Betriebssystemen).

13

Zuerst möchten Sie das Dateiformat von csv zu txt ändern. Das ist einfach zu tun, bearbeiten Sie einfach den Dateinamen und ändern Sie csv in txt. (Windows warnt Sie vor einer möglichen Beschädigung der Daten, aber es ist in Ordnung, klicken Sie einfach auf OK.) Erstellen Sie dann eine Kopie der txt-Datei, sodass Sie jetzt zwei Dateien mit jeweils 2 Millionen Datenzeilen haben. Öffnen Sie dann die erste txt-Datei, löschen Sie die zweite Million Zeilen und speichern Sie die Datei. Öffnen Sie dann die zweite txt-Datei, löschen Sie die ersten Millionen Zeilen und speichern Sie die Datei. Ändern Sie nun die beiden Dateien wieder in csv, so wie Sie sie ursprünglich in txt geändert haben.

8
user2769406

Excel 2007+ ist auf etwas mehr als 1 Million Zeilen beschränkt (2 ^ 20 um genau zu sein), sodass Ihre 2M-Zeilendatei niemals geladen wird. Ich denke, dass die Technik, die Sie als Aufteilen bezeichnen, das eingebaute Ding von Excel ist, aber afaik, das nur für Breite Probleme funktioniert, nicht für Länge Probleme.

Der einfachste Weg, den ich sofort sehe, besteht darin, ein Dateisplittungstool - es gibt jede Menge zu verwenden, um die resultierenden partiellen CSV-Dateien in mehrere Arbeitsblätter zu laden.

ps: "Excel-CSV-Dateien" gibt es nicht, es gibt nur von Excel erstellte Dateien, die eines der Formate verwenden, die üblicherweise als CSV-Dateien bezeichnet werden ...

6
fvu

Sie können PowerPivot verwenden, um mit Dateien von bis zu 2 GB zu arbeiten, was für Ihre Anforderungen ausreicht.

5
Jack

Ich bin überrascht, dass niemand etwas erwähnt hat Microsoft Query . Sie können einfach Daten aus der großen CSV-Datei nach Bedarf anfordern, indem Sie nur die benötigten Daten abfragen. (Das Abfragen wird so eingerichtet, wie Sie eine Tabelle in Excel filtern.)

Besser noch, wenn man offen für die Installation des Power Query-Add-Ins ist, ist es supereinfach und schnell. Hinweis: Power Query ist ein Add-In für 2010 und 2013, wird jedoch mit 2016 geliefert.

4
click here
3
Psi-Ed

Ich konnte eine große 17-GB-CSV-Datei in Sublime Text ohne Probleme bearbeiten (die Zeilennummerierung erleichtert das Verfolgen der manuellen Aufteilung erheblich) und sie dann in Stücken von weniger als 1.048.576 Zeilen in Excel ablegen. Einfach und recht schnell - weniger aufwändig als nach maßgeschneiderten Lösungen zu suchen, diese zu installieren und zu erlernen. Schnell und dreckig, aber es funktioniert.

1
Fiddy Bux

"DO I need to ask for a file in an SQL database format?" JA!!!

Verwenden Sie eine Datenbank, ist die beste Option für dieses Problem.

Excel 2010 Spezifikationen .

1
alap

Verwenden Sie MS Access. Ich habe eine Datei mit 2.673.404 Datensätzen. Es wird nicht in Editor ++ geöffnet und Excel lädt nicht mehr als 1.048.576 Datensätze. Es ist tabulatorgetrennt, da ich die Daten aus einer MySQL-Datenbank exportiert habe und sie im CSV-Format benötige. Also habe ich es in Access importiert. Ändern Sie die Dateierweiterung in ".txt", damit MS Access Sie durch den Importassistenten führt.

MS Access stellt eine Verknüpfung zu Ihrer Datei her, damit die Datenbank intakt bleibt und die CSV-Datei erhalten bleibt

1

Ich fand dieses Thema recherchierend. Es gibt eine Möglichkeit, alle diese Daten in ein Excel-Datenblatt zu kopieren. (Ich habe dieses Problem schon einmal mit einer 50-Millionen-Zeilen-CSV-Datei) Wenn es ein Format gibt, könnte zusätzlicher Code enthalten sein. Versuche dies.

Sub ReadCSVFiles()

Dim i, j As Double
Dim UserFileName As String
Dim strTextLine As String
Dim iFile As Integer: iFile = FreeFile

UserFileName = Application.GetOpenFilename
Open UserFileName For Input As #iFile
i = 1
j = 1
Check = False

Do Until EOF(1)
    Line Input #1, strTextLine
    If i >= 1048576 Then
        i = 1
        j = j + 1
    Else
        Sheets(1).Cells(i, j) = strTextLine
        i = i + 1
    End If
Loop
Close #iFile
End Sub