web-dev-qa-db-fra.com

Excel CSV. fichier avec plus de 1 048 576 lignes de données

On m'a donné un fichier CSV avec plus que ce que MAX Excel peut gérer, et j'ai vraiment besoin de pouvoir voir toutes les données. Je comprends et ai essayé la méthode de la "scission", mais ça ne marche pas.

Un peu d’arrière-plan: le fichier CSV est un fichier Excel CSV, et la personne qui a fourni le fichier a indiqué qu’il y avait environ 2m lignes de données.

Lorsque je l’importe dans Excel, je récupère les données jusqu’à la ligne 1,048,576, puis je les réimporte dans un nouvel onglet commençant par la ligne 1,048,577 des données, mais il ne me donne qu’une ligne. sachez qu'il devrait y avoir plus de (non seulement à cause du fait que "la personne" a déclaré qu'il y en avait plus de 2 millions, mais à cause des informations contenues dans les derniers ensembles de lignes)

Je pensais que la raison en est peut-être que cela est dû au fait que le fichier CSV m'a été fourni sous forme de fichier Excel CSV, de sorte que toutes les informations antérieures à 1,048,576 sont perdues (?).

Dois-je demander un fichier dans un format de base de données SQL?

42
Ostrich_Cloud

Vous devriez essayer délimiter il peut ouvrir jusqu'à 2 milliards de lignes et 2 millions de colonnes ont très rapidement un essai gratuit de 15 jours. Fait le travail pour moi!

22
skyliner28

Je suggère de charger le fichier .CSV dans MS-Access.

Avec MS-Excel, vous pouvez ensuite créer une connexion de données à cette source (sans charger les enregistrements dans une feuille de calcul) et créer un tableau croisé dynamique connecté. Vous pouvez alors avoir un nombre pratiquement illimité de lignes dans votre table (en fonction du processeur et de la mémoire: j'ai maintenant 15 millions de lignes avec 3 Go de mémoire).

Un avantage supplémentaire est que vous pouvez maintenant créer une vue globale dans MS-Access. De cette façon, vous pouvez créer des aperçus à partir de centaines de millions de lignes, puis les afficher dans MS-Excel (méfiez-vous de la limitation de 2 Go des fichiers NTFS dans un système d'exploitation 32 bits).

13

Tout d'abord, vous voulez changer le format de fichier de csv à txt. C’est simple, il suffit de modifier le nom du fichier et de changer csv en txt. (Windows vous avertira de la possibilité de corrompre les données, mais c'est correct, cliquez simplement sur ok). Faites ensuite une copie du fichier txt de sorte que vous disposiez maintenant de deux fichiers contenant 2 millions de lignes de données. Ouvrez ensuite le premier fichier txt, supprimez le deuxième million de lignes et enregistrez le fichier. Ensuite, ouvrez le deuxième fichier txt, supprimez le premier million de lignes et enregistrez le fichier. Modifiez maintenant les deux fichiers en csv de la même manière que vous les avez modifiés en txt à l’origine.

8
user2769406

Excel 2007+ est limité à un peu plus d'un million de lignes (2 ^ 20 pour être précis), de sorte qu'il ne chargera jamais votre fichier de ligne de 2 millions de pixels. Je pense que la technique que vous appelez division est la chose intégrée à Excel, mais autant que cela ne fonctionne que pour des problèmes de largeur , pas pour longueur problèmes.

Le moyen le plus simple que je vois tout de suite est d’utiliser outil de fractionnement de fichier - il y en a des tonnes et de l’utiliser pour charger les fichiers csv partiels résultants dans plusieurs feuilles de calcul.

ps: "Les fichiers Excel csv" n'existent pas, il n'y a que des fichiers produits par Excel qui utilisent l'un des formats couramment appelés fichiers csv ...

6
fvu

Vous pouvez utiliser PowerPivot pour travailler avec des fichiers de 2 Go maximum, ce qui sera suffisant pour vos besoins.

5
Jack

Je suis surpris que personne ne mentionne Microsoft Query . Vous pouvez simplement demander des données au fichier CSV volumineux, selon vos besoins, en interrogeant uniquement celles dont vous avez besoin. (La requête est configurée comme pour filtrer une table dans Excel)

Mieux encore, si vous êtes prêt à installer le complément Power Query, c'est très simple et rapide. Remarque: Power Query est un complément pour 2010 et 2013, mais vient avec 2016.

4
click here

Si vous avez Matlab, vous pouvez ouvrir de gros fichiers CSV (ou TXT) via son système d’importation. L'outil vous propose différentes options de format d'importation, notamment des tableaux, des vecteurs de colonne, une matrice numérique, etc. 2 millions de lignes en environ 10 minutes.

L'outil est accessible via l'onglet Accueil de Matlab en cliquant sur le bouton "Importer des données". Un exemple d’image d’un téléchargement de fichier volumineux est présenté ci-dessous: enter image description here Une fois importées, les données apparaissent dans l’espace de travail de droite, qui peut ensuite être double-cliqué dans un format similaire à Excel et même être tracé dans des formats différents. enter image description here

3
Psi-Ed

J'ai pu éditer un gros fichier csv de 17 Go dans Sublime Text sans problème (la numérotation des lignes facilite beaucoup le suivi de la division manuelle), puis importé dans Excel par blocs de moins de 1 048 576 lignes. Simple et assez rapide - moins compliqué que de rechercher, d'installer et d'apprendre des solutions sur mesure. Rapide et sale, mais ça marche.

1
Fiddy Bux

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

Utiliser une base de données est la meilleure option pour résoudre ce problème.

Excel 2010 spécifications .

1
alap

Utilisez MS Access. J'ai un fichier de 2 673 404 enregistrements. Il ne s'ouvrira pas dans le bloc-notes ++ et Excel ne chargera pas plus de 1 048 576 enregistrements. Il est délimité par des tabulations puisque j'ai exporté les données d'une base de données mysql et j'en ai besoin au format csv. Alors je l'ai importé dans Access. Modifiez l'extension de fichier en .txt afin que MS Access vous guide à travers l'assistant d'importation.

MS Access établira un lien vers votre fichier afin que la base de données reste intacte, conservez le fichier csv

1
Timothy Wachiuri

J'ai trouvé ce sujet en train de faire des recherches. Il existe un moyen de copier toutes ces données dans une feuille de données Excel. (J'ai déjà ce problème avec un fichier CSV de 50 millions de lignes) S'il existe un format quelconque, du code supplémentaire pourrait être inclus. Essaye ça.

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
0