Desde Excel 2007, Microsoft dividiu o clássico .xls
formato para vários formatos (em particular, .xlsx
, .xlsm
, .xlsb
). Não tenho problemas para entender o uso e a finalidade do .xlsx
formato, mas ainda estou me perguntando se devemos usar um .xlsm
ou um .xlsb
formato ao criar um arquivo que contém algum VBA.
Claro, você pode encontrar alguns tópicos na web, por exemplo:
- no fórum de respostas da Microsoft
- no blog da Microsoft , que foi apontado na ligação anterior (ainda que eu analisado até o 10 º página sem encontrar um ref para
.xlsb
) - este tópico de outro fórum
O que entendi deste último link é que .xlsm
é algum tipo de formato XML e, portanto, necessário para a guia da faixa de opções personalizada.
Além da diferença conceitual entre o formato ( .xlsm
é baseado em XML VS .xlsb
é um arquivo binário ), há alguma diferença prática ao usar qualquer um desses arquivos (além da personalização da faixa de opções)?
Você já viu alguma diferença real ao usar algum desses formatos?
fonte
Respostas:
Eles são todos semelhantes no sentido de que são essencialmente arquivos zip contendo os componentes do arquivo real. Você pode ver o conteúdo substituindo a extensão por .zip e abrindo-o. A diferença com o xlsb parece ser que os componentes não são baseados em XML, mas em um formato binário: supostamente, isso é benéfico ao trabalhar com arquivos grandes.
https://blogs.msdn.microsoft.com/dmahugh/2006/08/22/new-binary-file-format-for-spreadsheets/
fonte
.xlsx
carrega 4 vezes mais que.xlsb
e salva 2 vezes mais e tem 1,5 vezes um arquivo maior. Eu testei isso em uma planilha gerada com 10.000 linhas * 1.000 colunas = 10.000.000 (10 ^ 7) células de=…+1
fórmulas encadeadas simples :(Hardware: Core2Duo 2,3 GHz, 4 GB de RAM, 5,400 rpm SATA II HD; Windows 7, sob carga um tanto pesada de outros processos.)
Além disso, não deve haver diferenças. Mais precisamente,
cita esta postagem do blog de 29/08/2006. Portanto, talvez as informações que
.xlsb
não suportam o código da Faixa de Opções sejam mais recentes do que a citação superior, mas acho que a sua fonte do fórum está errada. Ao quebrar o arquivo binário, ele parece imitar de forma condensada a estrutura do arquivo OOXML 1 para 1: Artigo do blog de 07/08/2006fonte
.xlsx
é como.xlsm
, apenas com macros desabilitadas. Ambos são baseados em XML. Em contraste com isso,.xlsb
é binário. Portanto, você deve ler a pergunta como "{.xlsx / .xlsm} versus .xlsb". (Não existe uma versão do binário desativada para macro.xlsb
.)Pode-se pensar que xlsb tem apenas vantagens sobre xlsm. O fato de que xlsm é baseado em XML e xlsb é binário é que, quando ocorre corrupção da pasta de trabalho, você tem melhores chances de reparar um xlsm do que um xlsb.
fonte
Para a posteridade, aqui está o texto de várias fontes externas sobre os formatos de arquivo do Excel. Alguns deles foram mencionados em outras respostas a esta pergunta, mas sem reproduzir o conteúdo essencial.
1. Doug Mahugh, 22 de agosto de 2006 :
Este artigo também se refere à documentação sobre o formato BIN , muito extenso para reproduzir aqui.
2. Do MSDN Archive, 29 de agosto de 2006, que por sua vez cita uma postagem de blog já ausente sobre o formato XLSB:
fonte
O formato XLSB também é dedicado às macros incorporadas em um arquivo de pasta de trabalho oculto localizado na pasta de inicialização do Excel (XLSTART).
Um teste rápido e sujo com um xlsm ou xlsb na pasta XLSTART:
0,89s com um xlsb (binário) versus 1,3s com o mesmo conteúdo no formato xlsm (xml em um arquivo zip) ... :)
fonte