我收到的CSV文件超过了MAX Excel可以处理的数量,我真的需要能够查看所有数据。我理解并试过“分裂”它的方法,但它不起作用。
某些背景信息:CSV文件是Excel CSV文件,并且提供该文件的人员表示大约有2m
行数据。
当我将其导入Excel时,我将数据提取到行1,048,576
,然后在数据中从行1,048,577
开始的新选项卡中重新导入它,但它只给我一行,我知道应该有更多的(不仅因为“这个人”说有超过200万,而且因为最后几组行中的信息)
我认为发生这种情况的原因可能是因为我已将CSV文件作为Excel CSV文件提供,因此1,048,576
之后的所有信息都将丢失(?)。
我是否需要索取SQL数据库格式的文件?
答案 0 :(得分:21)
您应该尝试delimit它可以快速打开20亿行和200万列,也可以免费试用15天。这份工作适合我!
答案 1 :(得分:12)
我建议在MS-Access中加载.CSV文件。
使用MS-Excel,您可以创建与此源的数据连接(无需实际加载工作表中的记录)并创建连接的数据透视表。然后你可以在你的表中拥有几乎无限数量的行(取决于处理器和内存:我现在有15万行3 Gb内存)。
其他优点是您现在可以在MS-Access中创建聚合视图。通过这种方式,您可以创建数亿行的概视图,然后在MS-Excel中查看它们(注意32位操作系统中NTFS文件的2Gb限制)。
答案 2 :(得分:7)
首先,您要将文件格式从csv更改为txt。这很简单,只需编辑文件名并将csv更改为txt即可。 (Windows会向您发出有关可能损坏数据的警告,但没关系,只需单击确定)。然后制作txt文件的副本,这样现在你有两个文件都有2百万行数据。然后打开第一个txt文件并删除第二百万行并保存文件。然后打开第二个txt文件并删除前一百万行并保存文件。现在将两个文件更改回csv,就像最初将它们更改为txt一样。
答案 3 :(得分:5)
Excel 2007+ is limited to somewhat over 1 million rows (准确地说是2 ^ 20),所以它永远不会加载你的2M行文件。我认为你所称的拆分技术是Excel所具有的内置功能,但是afaik仅适用于宽度问题,而不适用于长度问题。
我立即看到的最简单的方法是使用一些file splitting tool - there's tons of 'em并使用它将生成的部分csv文件加载到多个工作表中。
ps:“excel csv files”不存在,只有Excel生成的文件使用其中一种通常称为csv文件的格式......
答案 4 :(得分:4)
您可以使用PowerPivot处理最高2GB的文件,这足以满足您的需求。
答案 5 :(得分:4)
尝试使用Open Refine。它已经能够处理数据集,否则会为我崩溃Excel。
答案 6 :(得分:3)
如果您有Matlab,则可以通过其导入工具打开大型CSV(或TXT)文件。该工具为您提供各种导入格式选项,包括表格,列向量,数字矩阵等。但是,由于Matlab是一个解释器包,它需要花费自己的时间来导入这么大的文件,并且我能够导入一个以上的文件。在大约10分钟内完成200万行。
通过单击“导入数据”按钮,可以通过Matlab的“主页”选项卡访问该工具。大文件上传的示例图像如下所示: 导入后,数据将显示在右侧的工作区中,然后可以以类似Excel的格式双击,甚至可以以不同的格式绘制。
答案 7 :(得分:2)
尝试使用Microsoft的PowerPivot。 Here,您可以找到分步教程。它适用于我的4M +行!
答案 8 :(得分:1)
我强烈建议您将数据导入Access,这样您就可以从内部访问中查询它。您可以尝试使用R来查询您的文件,我非常乐意为您提供帮助。否则,您可以查看此产品的免费解决方案,该解决方案允许您从Excel文件中运行SQL语句。 http://www.querystorm.com/Home/Guide
答案 9 :(得分:1)
使用MS Access。我有一份2,673,404条记录。它不会在notepad ++中打开,excel不会加载超过1,048,576条记录。它是制表符分隔的,因为我从mysql数据库导出数据,我需要它以csv格式。所以我将它导入Access。将文件扩展名更改为.txt,以便MS Access将引导您完成导入向导。
MS Access将链接到您的文件,以便数据库保持原样保留csv文件
答案 10 :(得分:1)
我能够在没有问题的情况下编辑Sublime Text中的大型17GB csv文件(行编号使得跟踪手动拆分更加容易),然后将其以小于1,048,576行的块转储到Excel中。简单而快速 - 比研究,安装和学习定制解决方案更不费劲。快速而肮脏,但它确实有效。
答案 11 :(得分:0)
"DO I need to ask for a file in an SQL database format?"
是!!!
使用数据库,是解决此问题的最佳选择。
Excel 2010 specifications 。
答案 12 :(得分:0)
我发现该主题正在研究中。 有一种方法可以将所有这些数据复制到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
答案 13 :(得分:0)
处理此问题的最佳方法(轻松实现,无需任何其他软件)是使用Excel-但使用Powerpivot(已嵌入MSFT Power Query)。只需创建一个新的Power Pivot数据模型即可附加到您的大型csv或文本文件。然后,您将能够使用嵌入式X-Velocity(内存中压缩)引擎将数百万行导入内存。 Excel工作表限制不适用-因为X-Velocity引擎将所有内容以压缩形式存储在RAM中。我已经加载了1500万行,并使用此技术随意过滤。希望这对某人有帮助...-Jaycee
答案 14 :(得分:0)
您可以尝试下载并安装TheGun Text Editor。可以帮助您轻松打开大型csv文件。
您可以在这里https://developingdaily.com/article/how-to/what-is-csv-file-and-how-to-open-a-large-csv-file/82
查看详细的文章答案 15 :(得分:-1)
在记事本中将CSV拆分为两个文件。这很痛苦,但您可以在此之后在Excel中单独编辑它们。