Ir para o conteúdo
OneKitly

XLS, XLSX, XLSM e XLSB: qual é qual, e qual lhe convém

Publicado a 19/08/2026 · 12 min de leitura · Ferramentas de ficheiros

Daniel Okonkwo

Daniel OkonkwoProgramador front-end e redator de Tecnologia na OneKitly

Desempenho web · Formatos de ficheiro

Verificado a partir de 4 fontes

Ver perfil
Em resumo

Use XLSX salvo se tiver uma razão concreta para não o fazer. Use XLSM apenas se o livro tiver de executar macros. Use XLSB apenas se o ficheiro for muito grande e ficar dentro de uma organização com Excel. Leia o XLS, nunca o escreva. Eis o facto que faz tudo encaixar: XLSX, XLSM e XLSB são a mesma coisa — um arquivo ZIP de partes. Mude a extensão de qualquer um deles para .zip e o seu gestor de ficheiros abre-o. O livro de teste de 201 linhas usado neste artigo, escrito em .xlsx, é um ZIP com dez membros: xl/workbook.xml, xl/worksheets/sheet1.xml, xl/styles.xml, [Content_Types].xml e outros seis. Guardado como .xlsb, o mesmo pacote contém xl/workbook.bin e xl/worksheets/sheet1.bin em vez disso: recipiente idêntico, partes binárias em vez de XML. Um XLSM é um XLSX byte a byte, mais a autorização de transportar xl/vbaProject.bin. O XLS é o intruso: começa por D0 CF 11 E0 A1 B1 1A E1, um ficheiro composto OLE2 anterior a 2007, e mudar-lhe a extensão para .zip não dá nada. As diferenças de tamanho são reais mas menores do que a lenda. A mesma folha de 201 linhas ocupa 17 408 bytes em .xls, 44 343 em .xlsx, 44 321 em .xlsm, 28 505 em .xlsb. A escala muda o quadro: com 25 000 linhas por 5 colunas, o .xlsx pesa 5 031 220 bytes e demora 562 ms a ler, o .xlsb 3 780 567 bytes e 234 ms — um quarto mais leve e lido a dobrar. Um aviso antes de converter: esta ferramenta escreve .xlsx, e o .xlsx não pode transportar macros. Converter um XLSM apaga-as, em silêncio.

Quatro extensões, três delas a mesma caixa com tampas diferentes. Mude a extensão de um XLSX para .zip e ele abre — só esse facto explica toda a família, e explica porque é que o XLS, que não abre assim, continua a ser o que dá problemas.

O facto que explica toda a família: mude a extensão para .zip

Pegue numa cópia de qualquer .xlsx, mude a extensão para .zip e faça duplo clique. Abre. Lá dentro há uma árvore de pastas: [Content_Types].xml declara o que é cada parte, _rels/.rels diz como as partes se apontam umas às outras, xl/workbook.xml lista as folhas, xl/worksheets/sheet1.xml contém as células, xl/styles.xml a formatação. O ficheiro de teste deste artigo tinha exatamente dez membros desse tipo. É esse todo o desenho: um livro é um pacote comprimido de pequenos documentos XML, normalizado como ECMA-376 e depois como ISO/IEC 29500.

Depois de ver isso, o resto da família deixa de ser um mistério. XLSM é o mesmo ZIP com mais uma parte autorizada lá dentro — xl/vbaProject.bin, o projeto de macros compilado — e um tipo de conteúdo que avisa o Excel para a esperar. XLSB é outra vez o mesmo ZIP, com cada parte XML substituída por um fluxo de registos binários: no ficheiro de teste, xl/workbook.xml passou a xl/workbook.bin, xl/worksheets/sheet1.xml passou a sheet1.bin, xl/styles.xml a styles.bin. Mesmo recipiente, mesma disposição, codificação diferente do conteúdo.

O XLS recusa o truque, e essa recusa é precisamente o assunto. Os seus oito primeiros bytes são D0 CF 11 E0 A1 B1 1A E1 — a assinatura de um ficheiro composto OLE2, um pequeno sistema de ficheiros dentro de um ficheiro que a Microsoft usava para os documentos do Office antes de 2007. Nem ZIP, nem XML, nada por onde uma ferramenta moderna possa andar sem um analisador dedicado. Tudo o que é incómodo no XLS vem daí: é um objeto de outra natureza com nome de folha de cálculo.

Porque é que uma organização que ainda recebe XLS tem um problema a sério

O problema não é a nostalgia, é a superfície de ataque. Ler um XLS significa correr um analisador binário escrito à mão sobre bytes não fiáveis: posicionar-se num fluxo, ler um tipo de registo, ler um comprimento, confiar nesse comprimento. Essa forma de código produziu uma longa série de avisos de corrupção de memória no Office ao longo de duas décadas, e é por isso que a Microsoft fornece definições de bloqueio de ficheiros que permitem a um administrador recusar de vez os formatos binários antigos, e por isso que as macros de ficheiros vindos da internet são bloqueadas por omissão em vez de apenas assinaladas.

O segundo problema é mais discreto e sai mais caro: o XLS tem um teto de 65 536 linhas e 256 colunas. Uma exportação moderna que ultrapasse qualquer um dos dois é truncada em vez de recusada, e um relatório truncado é exatamente igual a um completo. Se algum processo da sua organização ainda produz .xls, é isso que há a verificar primeiro, antes mesmo da questão de segurança.

A solução não é proibir a extensão, o que só empurra o ficheiro para um anexo que ninguém regista. A solução é convertê-lo à chegada e guardar o original algures em modo de leitura. É para isso que serve o conversor desta página: lê XLS, XLSX, XLSM, XLSB, ODS e Apple Numbers, e escreve XLSX. Uma só saída, sempre, no seu navegador, sem enviar nada.

XLSM, e aquilo que este conversor não lhe vai dizer

O XLSM existe por uma só razão: o XLSX não pode conter macros, por isso um livro que executa código precisa de outro tipo de conteúdo e de outra extensão. Essa separação é deliberada e é um bom desenho — o nome do ficheiro chega para saber se uma folha pode executar alguma coisa, antes de a abrir.

O que nos leva ao que a execução do conversor mostrou de facto. Construiu-se para o teste um livro que transporta mesmo xl/vbaProject.bin, declarado em [Content_Types].xml exatamente como o Excel o declara. A ferramenta leu-o sem hesitar. O projeto de macros não sobreviveu em nenhum dos sentidos: ao leitor nunca é pedido, por isso é descartado antes mesmo de a conversão começar, e o .xlsx que sai não contém qualquer parte VBA — os dez membros da saída foram verificados um a um. Ou seja: converter um XLSM aqui dá uma folha que funciona com o código retirado, e nenhuma mensagem o diz.

Muitas vezes é exatamente o que se quer. Retirar as macros de um livro que chegou por e-mail é um gesto de higiene razoável, e a forma mais segura de o fazer é converter para XLSX e ficar com o resultado. É um desastre se as macros eram o essencial — um modelo mensal que alguém da contabilidade montou em 2011 e que ninguém leu desde então. Saiba em que caso está antes de carregar no botão, e guarde o original de qualquer maneira.

Quando o XLSB compensa a sua incompatibilidade

Numa folha pequena, o XLSB quase não traz nada. O ficheiro de teste de 201 linhas ocupava 44 343 bytes em .xlsx e 28 505 em .xlsb, e nenhum dos dois demorou um tempo apreciável a abrir. Com 25 000 linhas por 5 colunas a diferença passa a ser um argumento: 5 031 220 bytes contra 3 780 567, e 562 milissegundos de análise contra 234. É esse todo o processo a favor do XLSB, e é real — menos um quarto em disco e menos de metade do tempo de leitura, porque ao analisador são entregues números em vez de um documento de texto que tem de partir em pedaços.

O preço é a portabilidade, e é alto. O XLSB é um formato de partes binárias da Microsoft: a especificação está publicada, mas cada ferramenta que o lê teve de o implementar em separado, e o suporte fora do Excel é mais irregular e mais tardio do que para o XLSX. As pré-visualizações na web, os clientes de correio, os pacotes de estatística e metade das bibliotecas de script do mundo abrem um XLSX e tropeçam num XLSB. Houve outra surpresa medida: escrever o XLSB de 25 000 linhas com a mesma biblioteca demorou 21 segundos contra meio segundo para o XLSX. É uma propriedade daquele escritor em concreto mais do que do formato, mas lembra que o lado rápido do XLSB é o lado da leitura.

A regra é, portanto, estreita. Use XLSB quando o ficheiro se medir em milhões de células, viver dentro de uma só organização, abrir apenas no Excel e os segundos poupados em cada abertura valerem alguma coisa para alguém. Todo o resto é XLSX — incluindo tudo o que enviar a alguém cujo software não controla.

O que o conversor guardou, e o que não guardou

A folha de teste tinha 200 fórmulas na última coluna e uma coluna de datas, e cada um dos cinco formatos passou pelo caminho de leitura e escrita da própria ferramenta. Linhas: 201 em 201, sempre. Datas: mantidas como datas, não como números de série, nos cinco. Fórmulas: 200 em 200 mantidas a partir de XLSX, XLSM e ODS. Zero a partir de XLSB e zero a partir de XLS — os valores chegaram, os cálculos não.

Essa última linha precisa de uma nota honesta. Os ficheiros de teste XLS e XLSB foram escritos pela mesma biblioteca que os voltou a ler, e os seus escritores para esses dois formatos guardam o valor em cache sem a fórmula. A medição prova, portanto, que a ida e volta perde informação; não prova que um XLS realmente escrito pelo Excel perderia as fórmulas à entrada. O conselho prático é o mesmo nos dois casos e custa um minuto: abra o ficheiro convertido, clique numa célula que deveria ser um cálculo e olhe para a barra de fórmulas antes de apagar o original.

Mais uma coisa que vale a pena saber sobre o leitor: ele pede as células vazias. Uma célula cuja fórmula existe mas cujo resultado em cache está vazio — frequente em livros escritos por um gerador, ou guardados sem recalcular — seria de outro modo deitada fora inteira, fórmula incluída. É por essas células serem guardadas que um ficheiro convertido lhe pode mostrar uma fórmula que nunca produziu um número.

Os quatro formatos com critérios idênticos, medidos sobre o mesmo livro de teste de 201 linhas
FormatoO que é realmente o ficheiroAbre se for renomeado .zipPode conter macrosTamanho, folha de 201 linhasEscolha-o quando
XLSFicheiro composto OLE2, binário anterior a 2007NãoSim, como fluxo binário17 408 bytesNunca o escreva. Leia-o, converta-o, arquive o original
XLSXZIP de partes XML (ECMA-376)Sim — 10 membros no ficheiro de testeNão, por desenho44 343 bytesSempre, salvo se se aplicar uma linha abaixo
XLSMO mesmo ZIP, com xl/vbaProject.bin autorizadoSim — os mesmos 10 membrosSim — é a única diferença44 321 bytesO livro tem de executar código e você confia nele
XLSBO mesmo ZIP com partes .bin em vez de .xmlSim — workbook.bin, sheet1.bin, styles.binSim28 505 bytesMilhões de células, só Excel, uma só organização
ODSZIP de partes ODF, o formato nativo do LibreOfficeSim — content.xml, styles.xml, mimetypeSim, no seu próprio modelo de scripting94 890 bytesA sua organização normaliza formatos abertos
XLS para XLSXConverta um livro .xls antigo para o formato .xlsx moderno, no seu navegador.Experimentar a ferramenta

Perguntas frequentes

Posso simplesmente renomear um XLS para XLSX?
Não, e é a maneira mais comum de perder um ficheiro. A extensão é um rótulo; os bytes por baixo são um ficheiro composto OLE2, não um ZIP. O Excel costuma dar-se conta e recusar, ou abrir com um aviso de que a extensão não corresponde ao conteúdo. Qualquer programa menos tolerante dá simplesmente erro. Renomear só funciona entre XLSX, XLSM e XLSB, que são mesmo o mesmo recipiente — e mesmo aí está a mentir ao tipo de conteúdo, o que cria os seus próprios problemas. Converta antes.
Converter o meu XLSM para XLSX vai estragá-lo?
Vai estragar as macros e mais nada. As células, as fórmulas, a formatação e os nomes das folhas passam; o projeto VBA compilado não, porque o XLSX não tem onde o pôr. Foi verificado num livro construído de propósito para transportar xl/vbaProject.bin — a saída não continha qualquer parte VBA e não foi mostrado aviso nenhum. Se as macros forem essenciais, guarde o XLSM e converta só uma cópia. Se forem indesejadas, esta é a forma mais limpa de as retirar.
O XLSB é mesmo mais rápido, ou é um mito?
Real, mas só à escala e só na leitura. Numa folha de 201 linhas são 28 505 bytes contra 44 343 e nenhum demora um tempo apreciável a abrir. Com 25 000 linhas por 5 colunas são 3 780 567 bytes contra 5 031 220, e 234 milissegundos de análise contra 562 — menos um quarto e lido em menos de metade do tempo. Escrever esse mesmo ficheiro, com a biblioteca deste teste, era o contrário: 21 segundos para o XLSB contra meio segundo para o XLSX. Julgue o XLSB pelo número de vezes que o ficheiro é aberto, não pelo tamanho que ocupa numa pasta.
Como sei o que é realmente um ficheiro quando a extensão mente?
Olhe para os primeiros bytes. 50 4B — os caracteres PK — significa um ZIP, ou seja XLSX, XLSM, XLSB, ODS ou um arquivo comum. D0 CF 11 E0 A1 B1 1A E1 significa um ficheiro composto OLE2: XLS, DOC, PPT ou um MSI antigo. Texto simples com vírgulas ou pontos e vírgulas e sem assinatura nenhuma é um CSV que alguém renomeou. No macOS e no Linux o comando `file` diz tudo isto numa linha; no Windows qualquer visualizador hexadecimal mostra a primeira fila. É assim também que o conversor desta página decide o que lhe deram, em vez de confiar no nome.
O conversor envia o meu livro para algum lado?
Não. Toda a conversão corre no seu navegador: a biblioteca de folhas de cálculo é descarregada uma vez, o ficheiro é lido do seu disco para a memória e o novo livro é escrito de volta como descarga. Nada sai da máquina, que é exatamente o que é preciso para o caso de que esta página fala mesmo — um livro antigo cheio de nomes, salários ou fichas de clientes que preferia não pôr no servidor de um desconhecido só para lhe mudar a extensão.

Artigos que podem interessar-lhe

Todos os guias
ExplicaçãoConverter fórmulas em valores guarda a resposta em cache, não o cálculoUm ficheiro de folha de cálculo guarda ao mesmo tempo a fórmula e a última resposta calculada pelo Excel. Retirar a fórmula deixa a resposta guardada — e deixa um vazio onde o ficheiro nunca levou nenhuma.ExplicaçãoO número 1 e o texto «1» não são duplicadosA remoção de duplicados compara linhas inteiras de forma exata, tipo de célula incluído. Cinco linhas de aspeto idêntico saíram como três: uma levava um número, outra uma cadeia e outra uma cadeia com um espaço à frente.ExplicaçãoPorque é que o seu CSV parte os acentos e as datas no ExcelTrês avarias completamente diferentes escondem-se atrás da mesma frase. Uma é a codificação, outra o separador, outra o Excel a adivinhar tipos enquanto abre o ficheiro — e o remédio é diferente para cada uma. Eis como distingui-las em cinco segundos.ComparaçãoZIP ou TAR: qual escolher, e porque é que isso importaUma só diferença de estrutura explica tudo o resto: o TAR não comprime, empilha; o ZIP comprime cada ficheiro por si. Medido em 60 ficheiros de código pequenos, dá 1 809 bytes contra 14 686.TutorialNumerar um PDF quando as páginas estão rodadas ou têm formatos diferentesNumerar um documento arrumado é trivial. O que morde é uma página deitada, uma folha Letter no meio de A4, um ficheiro de impressão com sangria e um documento que já imprime o seu próprio número. Testaram-se os quatro: nos três primeiros o número cai exatamente onde pediste, e o quarto não é detetado de todo.GuiaO que um PDF diz sobre si: ler e apagar os seus metadadosUm PDF transporta os seus metadados duas vezes, em dois depósitos que podem contar histórias diferentes, e nenhum deles é a história toda. Eis o que está realmente no ficheiro, o que a limpeza retira e as duas coisas que sobrevivem a qualquer apagamento.

Ferramentas relacionadas

Isto descreve o que estes conversores fazem hoje, verificado executando o próprio código deles sobre ficheiros reais, e não o que deveriam fazer. O comportamento de um formato depende da versão do Excel, do LibreOffice ou do Numbers que escreveu o ficheiro e da que o vai abrir, por isso guarde o original até ter aberto a cópia convertida e olhado para ela. Tudo o que importa — um livro com macros, um modelo cheio de fórmulas, um ficheiro de que outra pessoa vai depender — verifica-se célula a célula depois de converter, não se dá por bom porque uma barra de progresso chegou ao fim.

Fontes

Detetaste um erro neste artigo?