Limite de comprimento da célula do Excel

6

O Excel está se recusando a abrir alguns dos arquivos que eu programmaticamente criei. Eu acho que o que está acontecendo é que ele vomita porque uma coluna particular tem strings muito longas (até 1850 caracteres), mas para fins de solução de problemas quando eu faço as strings mais curtas (900 caracteres), ele abre.

Pergunta # 1: Qual é a string mais longa que eu posso encaixar em uma célula? Alguns resultados do google dizem 1024 ou 7.000ish, mas descobri que 1000 é muito longo.

Pergunta # 2: Eu tentei escrever meus arquivos no formato XML e XLS, mas ambos têm esse mesmo problema de comprimento de string. Existe um formato que o Excel irá ler que me permitirá ajustar minhas strings de 1850?

    
por rlb.usa 30.08.2010 / 22:59

5 respostas

3

De acordo com este , havia um limite de 1k caracteres por célula no Excel 2003, que aumentou para 32k caracteres por limite de célula no excel 2007. Se o seu programa estiver programaticamente criando um arquivo excel 2003 (.xls) e não um excel 2007 (.xlsx), isso pode estar causando o problema, pois o formato .xls não suporta mais de 1k caracteres por célula .

Você não deve ter problemas com um formato XML ou XLS indo diretamente para o Excel 2007, já que o limite do Excel 2003 não deve estar envolvido, mas não posso testá-lo, pois não possuo o Excel 2007, mas espero que isso tenha sido útil independentemente.

    
por 31.08.2010 / 00:09
6

Mesmo o Excel 2003 pode facilmente manipular 32.767 caracteres em uma célula, mas as versões anteriores ao Excel 2007 exibem apenas os primeiros 1024 caracteres in-cell ( MS source ).

Você pode ter encontrado um problema conhecido que trunca strings em 911 caracteres. Eu experimentei isso antes ao transferir dados através de uma conexão ADO.

O seguinte link refere-se ao Excel 2003, mas certamente soa como o mesmo problema que você está tendo.

link

    
por 31.08.2010 / 11:32
3

Os limites oficiais do Excel dizem que deve ser bom:

http://office.microsoft.com/en-us/excel-help/excel-specifications-and-limits-HP010073849.aspx

    
por 31.08.2010 / 00:12
1

Caso você receba seus dados do ADO, tente os códigos abaixo. Funcionou para mim.

Activecell.value=LEFT(YourRecordset("FieldName"), LEN(YourRecordset("FieldName")))

Basicamente, você obtém todo o conteúdo do campo, mas de uma maneira diferente. Desde o comprimento do conteúdo acima de 900 (para minha experiência), você tem que usar uma maneira alternativa. Você não precisa ficar com a função LEFT ; a função RIGHT também funciona.

    
por 12.04.2011 / 15:44
1

No Excel 2013 (e suponho no Excel 2007 e posterior), o tamanho de uma string exibida em uma única célula é de 1024 caracteres. Descobri isso acidentalmente quando escrevi uma string mais longa criada no VBA em uma única célula do Excel, que era a última célula da coluna a conter dados. A exibição normal de uma longa cadeia nas células à direita terminou após 1024 caracteres. No entanto, a função len retornou corretamente o tamanho real da seqüência de caracteres e copiando a seqüência de caracteres (que era uma lista de endereços de email) e colá-lo no Outlook deu a seqüência correta. Parece que a cadeia mais longa disponível no Excel 2007 e posterior funciona bem, mas não será exibida completamente.

    
por 10.10.2014 / 21:50