web-dev-qa-db-ja.com

Excel CSV。 1,048,576行を超えるデータを含むファイル

MAX Excelで処理できる以上のCSVファイルが提供されました。すべてのデータを表示できる必要があります。私はそれを「分割」する方法を理解し、試しましたが、うまくいきません。

背景:CSVファイルはExcel CSVファイルであり、ファイルを提供した人は2m行のデータがあると言っています。

Excelにインポートすると、1,048,576行までデータを取得し、データの1,048,577行から始まる新しいタブに再インポートしますが、1行しか表示されません。 more (「人」が200万を超えると言ったという事実だけでなく、最後の数セットの行の情報のため)

CSVファイルをExcel CSVファイルとして提供しているため、1,048,576を過ぎたすべての情報が失われた(?)ので、これが発生したのではないかと考えました。

SQLデータベース形式のファイルを要求する必要がありますか?

42
Ostrich_Cloud

区切り を試してみてください。最大20億行、200万列をすばやく開くことができ、15日間の無料トライアルもあります。私のために仕事をしています!

22
skyliner28

MS-Accessに.CSVファイルをロードすることをお勧めします。

MS-Excelを使用すると、このソースへのデータ接続を作成し(実際にワークシートにレコードをロードすることなく)、接続されたピボットテーブルを作成できます。これで、テーブルに事実上無制限の数の行を含めることができます(プロセッサとメモリに依存します。現在、3 Gbメモリの15ミリ行があります)。

追加の利点は、MS-Accessで集計ビューを作成できるようになったことです。このようにして、数億行から概要を作成し、MS-Excelで概要を表示できます(32ビットOSのNTFSファイルの2Gb制限に注意してください)。

13

まず、ファイル形式をcsvからtxtに変更します。ファイル名を編集し、csvをtxtに変更するだけです。 (Windowsはデータの破損の可能性について警告を表示しますが、問題ありません。[OK]をクリックしてください)。次に、txtファイルのコピーを作成して、2つのファイルに200万行のデータが含まれるようにします。次に、最初のtxtファイルを開き、200万行を削除してファイルを保存します。次に、2番目のtxtファイルを開き、最初の100万行を削除して、ファイルを保存します。元のtxtに変更したのと同じ方法で、2つのファイルをcsvに戻します。

8
user2769406

Excel 2007+は100万行以上に制限されています (正確には2 ^ 20)ですので、2M行ファイルは決して読み込まれません。あなたが分割と呼ぶテクニックはExcelに組み込まれているものだと思いますが、width問題に対してのみ有効であり、length問題。

私がすぐに見る最も簡単な方法は、いくつかの ファイル分割ツール - 'emのトンがあります を使用し、それを使用して結果の部分的なcsvファイルを複数のワークシートにロードすることです。

ps:「Excel csvファイル」は存在しません。一般にcsvファイルと呼ばれる形式のいずれかを使用するExcelによって生成されたファイルのみがあります...

6
fvu

PowerPivot を使用して、最大2GBのファイルを操作できます。これでニーズに十分です。

5
Jack

誰も言及していないことに驚いています Microsoft Query 。必要なものだけを照会することで、必要に応じて大きなCSVファイルからデータを簡単に要求できます。 (クエリは、Excelでテーブルをフィルター処理する方法のようなセットアップです)

さらに良いのは、Power Queryアドインをインストールできる場合、それは非常に簡単で迅速です。注:Power Queryは2010および2013のアドインですが、2016に付属しています。

4
click here

Matlabがある場合、そのインポート機能を介して大きなCSV(またはTXT)ファイルを開くことができます。このツールは、テーブル、列ベクトル、数値行列などを含むさまざまなインポート形式オプションを提供します。ただし、Matlabがインタープリターパッケージであるため、このような大きなファイルをインポートするには時間がかかります。約10分で200万行。

このツールには、Matlabの[ホーム]タブから[データのインポート]ボタンをクリックしてアクセスできます。大きなファイルのアップロードの画像の例を以下に示します。 enter image description here インポートされると、データは右側のワークスペースに表示され、Excelのような形式でダブルクリックして、さまざまな形式でプロットすることもできます。 enter image description here

3
Psi-Ed

Sublime Textで大きな17GBのcsvファイルを問題なく編集でき(行番号を付けると、手動での分割を簡単に追跡できるようになります)、それを1,048,576行未満のチャンクでExcelにダンプできました。シンプルで非常に迅速-オーダーメイドのソリューションを調査、インストール、学習するよりも手間がかかりません。すばやく汚れますが、動作します。

1
Fiddy Bux

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

この問題に最適なオプションは、データベースを使用することです。

Excel 2010 仕様

1
alap

MS Accessを使用します。 2,673,404レコードのファイルがあります。 notepad ++では開かず、Excelは1,048,576を超えるレコードをロードしません。 mysqlデータベースからデータをエクスポートし、csv形式で必要なため、タブ区切りです。そこで、Accessにインポートしました。ファイル拡張子を.txtに変更して、MS Accessがインポートウィザードを実行するようにします。

MS Accessはファイルにリンクするため、データベースはそのままでcsvファイルを保持します

1

私はこの主題を研究していることがわかりました。このすべてのデータをExcelデータシートにコピーする方法があります。 (以前に5000万行のCSVファイルでこの問題が発生しました)形式がある場合は、追加のコードを含めることができます。これを試して。

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