O maior problema que tive ao encontrar um problema como este foi o tamanho do csv, mas em vez disso o arquivo continha mais registros do que o Excel poderia suportar. Dependendo da versão do Excel sua execução; O Excel 2003 tem um limite de 65.536 linhas e < href="http://office.microsoft.com/pt-br/excel-help/excel-specifications-and-limits-HP010342495.aspx"> a partir do Excel 2007, o tamanho da grade foi expandido de 65.000 linhas para mais de um milhão de linhas .
Para contornar meu problema, acabei dividindo o arquivo csv em partes mais gerenciáveis.
Eu usei o seguinte script do Powershell para dividir o arquivo:
$reader = New-Object System.IO.StreamReader("D:\someFile.csv")
$upperBound = 2500000
$fileCount = 1
$newFilename = "D:\someFile_{0}.csv" -f ($fileCount)
while(($line = $reader.ReadLine()) -ne $null){
Add-Content -path $newFilename -value $line
If((Get-ChildItem -path $newFilename).Length -ge $upperBound){
++$fileCount
$newFilename = "D:\someFile_{0}.csv" -f ($fileCount)
}
}
$reader.Close()
Isso dividirá o arquivo em vários arquivos, cada um deles com o tamanho definido para o $ upperBound, e cada arquivo será numerado seqüencialmente.