Quando os formatos xlsm ou xlsb devem ser usados?

106

Desde Excel 2007, Microsoft dividiu o clássico .xlsformato para vários formatos (em particular, .xlsx, .xlsm, .xlsb). Não tenho problemas para entender o uso e a finalidade do .xlsxformato, mas ainda estou me perguntando se devemos usar um .xlsmou um .xlsbformato ao criar um arquivo que contém algum VBA.

Claro, você pode encontrar alguns tópicos na web, por exemplo:

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?

JMax
fonte
3
xlsb geralmente é menor que xlsm
Charles Williams,
Algumas informações úteis aqui - analista.com/…
Chris
1
Por alguma razão, usar .xlsb em vez de .xlsm resolveu alguns problemas que estávamos tendo com uma Função Definida pelo Usuário criando objetos fantasmas no modelo de objeto: superuser.com/questions/1005482/…
SuMau

Respostas:

62

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/

Tim Williams
fonte
Os arquivos .xls eram binários no formato. Os arquivos .xlsb mantêm esse formato binário para as versões mais recentes do Office. Há uma diferença de tamanho e um benefício de velocidade no armazenamento de dados em formato binário, embora as melhorias só sejam notadas em arquivos MUITO grandes.
music2myear
90

.xlsxcarrega 4 vezes mais que .xlsbe 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 =…+1fórmulas encadeadas simples :

╭──────────────╥────────┬────────╮
│              ║ .xlsx  │ .xlsb  │
╞══════════════╬════════╪════════╡
│ loading time ║ 165s   │  43s   │
├──────────────╫────────┼────────┤
│ saving time  ║ 115s   │  61s   │
├──────────────╫────────┼────────┤
│ file size    ║  91 MB │  65 MB │
╰──────────────╨────────┴────────╯

(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,

ambos os formatos suportam exatamente o mesmo conjunto de recursos

cita esta postagem do blog de 29/08/2006. Portanto, talvez as informações que .xlsbnã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/2006

Aaron Thoma
fonte
2
apenas uma tentativa, sem resultados de ministat (1) embora: - \
Boa pessoa
2
Confirmo que um dos meus arquivos com uma faixa de opções personalizada funciona perfeitamente no xlsb.
David G
5
@PatrickLepelletier .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.)
Aaron Thoma de
4
Se xlsb é melhor, por que xlsx é o padrão? Deve haver alguma desvantagem para xlsb?
PProteus
3
@PProteus, basta colocar xlsb é melhor em uma área específica. A ideia de introduzir o padrão XML era ser mais transparente, tornando os arquivos mais portáteis e a manipulação de arquivos mais fácil. Agora, ferramentas de terceiros podem ler / gravar arquivos do Excel corretamente (eu sei, eles poderiam fazer isso com alguma engenharia reversa, mas isso estava sujeito a erros). Por outro lado, o uso de arquivos grandes do Excel não é realmente um uso primário do Excel, então a desvantagem de ser mais portátil é pequena. Além disso, o uso de um arquivo não macro aumenta a segurança até certo ponto. Como comparação, por que se preocupar com Java se o Assembler é melhor?
Ister de
9

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.

Felipe Costa Gualberto
fonte
1
Se isso for verdade, o xlsm é o único para mim. Tenho sido amaldiçoado com arquivos Excel corrompidos desde meados dos anos 90. Foi quase o suficiente para me fazer começar a cavar valas para viver. O Office 2000 foi a primeira versão com o recurso de recuperação de arquivos. Mas eu não
riderBill
As extensões de arquivo XLSX e XLSM são muito, muito mais estáveis ​​do que a extensão de arquivo XLS do Excel anterior a 2007.
Felipe Costa Gualberto
8

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 :

... o novo formato binário XLSB. Como o Open XML, é um formato de arquivo de fidelidade total que pode armazenar qualquer coisa que você possa criar no Excel, mas o formato XLSB é otimizado para desempenho de maneiras que não são possíveis com um formato XML puro.

O formato XLSB (às vezes também referido como BIFF12, como em “formato de arquivo binário para Office 12”) usa a mesma convenção de embalagem aberta usada pelos formatos XML aberto e XPS. Portanto, é basicamente um contêiner ZIP e você pode abri-lo com qualquer ferramenta ZIP para ver o que está dentro. Mas em vez de partes .XML dentro do pacote, você encontrará partes .BIN ...

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:

Embora tenhamos feito muito trabalho para garantir que nossos formatos XML abram de forma rápida e eficiente, esse formato binário é ainda mais eficiente para o Excel abrir e salvar e pode levar a algumas melhorias de desempenho para pastas de trabalho que contêm muitos dados, ou isso exigiria muita análise XML durante o processo de abertura. (Na verdade, descobrimos que o novo formato binário é mais rápido do que o antigo formato XLS em muitos casos.) Além disso, não existe uma versão livre de macro desse formato de arquivo - todos os arquivos XLSB podem conter macros (VBA e XLM) . Em todos os outros aspectos, é funcionalmente equivalente ao formato de arquivo XML acima:

Tamanho do arquivo - o tamanho do arquivo de ambos os formatos é aproximadamente o mesmo, uma vez que ambos os formatos são salvos no disco usando a arquitetura de compactação zip - ambos os formatos usam a mesma estrutura de empacotamento e ambos têm as mesmas estruturas de nível de parte. Suporte a recursos - ambos os formatos suportam exatamente o mesmo conjunto de recursos Desempenho de tempo de execução - uma vez carregado na memória, o formato do arquivo não tem efeito na velocidade de cálculo / aplicativo. Conversores - ambos os formatos terão suporte idêntico ao conversor

UuDdLrLrSs
fonte
5

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:

Measure-Command { $x = New-Object -com Excel.Application ;$x.Visible = $True ; $x.Quit() }

0,89s com um xlsb (binário) versus 1,3s com o mesmo conteúdo no formato xlsm (xml em um arquivo zip) ... :)

Alexis-Emmanuel Haeringer
fonte