Vantagens do formato de livro binário Excel. xlsb Por DataSafeXL, em 12 de novembro de 2014 Muitos usuários desconhecem os muitos benefícios e vantagens do formato de livro binário. xlsb Excel. Os arquivos da pasta de trabalho binário do Excel armazenam informações no formato binário em vez do formato XML, como na maioria dos outros arquivos do Excel. Como os arquivos XLSB são binários, eles podem ser lidos e gravados muito mais rápido, tornando-os extremamente úteis para planilhas muito grandes. Isso também implica que com cálculos de arquivos. xlsb será mais rápido e workbooks muito menores..xlsx carrega 4 vezes mais de. xlsb e economiza 2 vezes mais lento e tem 1,5 vezes um arquivo maior. Supostamente um usuário de fóruns principais Stackoverflow testou isso em uma planilha gerada com 108217000 linhas 18217000 colunas 1082170008217000 (107) células de cadeia simples 1 fórmulas:.xlsx. xlsb tempo de carregamento 165s 43s economia de tempo 115s 61s tamanho do arquivo 91 MB 65 MB Além de Um ponto de vista de segurança, uma vez que os dados estão em formato binário e não em XML. Os arquivos xlsb exibirão conteúdo ilegível se um usuário tentar alterar a extensão do arquivo para. zip. Outras vantagens do formato de arquivo. xlsb incluem: 8211 Salvar em binário permite que as fórmulas sejam salvas corretamente se forem maiores do que o limite de 8192 caracteres 8211 Macros, o código VBA é totalmente suportado Desvantagens e desvantagens de arquivos. xlsb: Formatos XLSB. Você deve converter de volta para XLSM, fazer suas mudanças Ribbon e, em seguida, de volta para XLSB 8211 Uma potencial falta de interoperabilidade com OpenOffice 8211 Não compatível com Excel 2003 e versões anteriores 8211 Compatibilidade em usar os dados com software que quer XML em vez de binário (web Servidor, por exemplo). Se você ligar um monte de sistemas juntos, isso pode causar um problema com uma das camadas, como XML foi desenvolvido especificamente para esta finalidade. Nosso premiado software de segurança XLSafe CORE suporta totalmente a extensão. xlsb e recomendamos isso para arquivos muito grandes e complexos. Ron de Bruin Excel Automação Use VBA SaveAs no Excel 2007-2016 Informações Você vê um monte de código SaveAs antigo que faz Não especifique o parâmetro FileFormat. Em versões do Excel antes do Excel 2007, o código sem esse parâmetro não causará muitos problemas porque o Excel usará o FileFormat atual do arquivo existente eo FileFormat padrão para novos arquivos é a (xls) no 97-2003 porque não há outros arquivos do Excel Formatos de arquivo antes do Excel 2007. Mas, como existem tantos novos formatos de arquivo no Excel 2007-2016, não devemos usar código como este que não especifique o parâmetro FileFormat. No Excel 2007-2016, SaveAs requer que você forneça o parâmetro FileFormat ea extensão de arquivo correta. Por exemplo, no Excel 2007-2016, isso falhará se o ActiveWorkbook não for um arquivo xlsm ActiveWorkbook. SaveAs quotC: ron. xlsmquot Este código sempre funcionará ActiveWorkbook. SaveAs quotC: ron. xlsmquot, fileformat: 52 52 xlOpenXMLWorkbookMacroEnabled xlsm (with Macros em 2007-2016) Estes são os principais formatos de arquivo no Excel 2007-2016, Observação. No Excel para o Mac, os valores são 1 xlOpenXMLWorkbook (sem macros em 2007-2016, xlsx) 52 xlOpenXMLWorkbookMacroEnabled (com ou sem macros em 2007-2016, xlsm) 50 xlExcel12 (Excel Binary Workbook em 2007-2016 com ou sem macros, Xlsb) 56 xlExcel8 (formato 97-2003 no Excel 2007-2016, xls) Observação. Eu sempre uso os números FileFormat em vez das constantes definidas no meu código para que ele compile OK quando eu copiar o código em um Excel 97-2003 pasta de trabalho (Por exemplo, Excel 97-2003 não saberá o que é a constante xlOpenXMLWorkbookMacroEnabled). Abaixo estão dois exemplos básicos de código para copiar o ActiveSheet para um novo livro e guardá-lo num formato que corresponda à extensão de ficheiro do livro principal. O segundo exemplo usa GetSaveAsFilename para pedir um nome de caminho de arquivo. Exemplo 1 você pode usar no Excel 97-2016. Exemplo 2 você pode usar no Excel 2000-2016. Se você executar o código no Excel 2007-2016 ele examinará o FileFormat do pasta de trabalho pai e salvar o novo arquivo nesse formato. Somente se a pasta de trabalho pai for um arquivo xlsm e se não houver nenhum código VBA na nova pasta de trabalho ele salvará o novo arquivo como xlsx. Se a pasta de trabalho pai não é um xlsx, xlsm ou xls, em seguida, ele será salvo como xlsb. Se você sempre quiser salvar em um determinado formato, você pode substituir esta parte da macro: Com um dos uma liners desta lista FileExtStr quot. xlsbquot: FileFormatNum 50 FileExtStr quot. xlsxquot: FileFormatNum 51 FileExtStr quot. xlsmquot: FileFormatNum 52 Ou Talvez você queira salvar a pasta de trabalho de uma planilha para csv, txt ou prn. (Você pode usar isso também se você executar o código no Excel 97-2003) FileExtStr quot. csvquot: FileFormatNum 6 FileExtStr quot. txtquot: FileFormatNum -4158 FileExtStr quot. prnquot: FileFormatNum 36Excel 20072010 oferece uma opção para salvar meus arquivos em um Excel Formato de pasta de trabalho binário que parece ser menor (50 do tamanho em alguns casos) e carregar mais rapidamente. Existe uma desvantagem para este formato. Devo evitar isso por algum motivo, penso que tem que haver alguma falha nele, ou seria o formato de salvaguarda padrão em vez do XLSX, mas não consigo descobrir quais as falhas podem ser. XLSX parece ser razoavelmente comum em outros produtos que podem importar arquivos do Excel, mas nenhum deles suporta XLSB - por que não perguntou 16 de fevereiro às 17:10 fechado como primeiramente baseado em opinião por aleatório 9830 27 de fevereiro 14 às 23:52 Muito bom Questões geram algum grau de opinião com base na experiência de especialistas, mas as respostas a esta pergunta tenderão a ser quase inteiramente baseadas em opiniões, ao invés de fatos, referências ou conhecimentos específicos. Se esta pergunta puder ser reformulada para se adequar às regras na Central de Ajuda. Por favor, edite a pergunta. Conforme mencionado, xlsb é um tipo de arquivo binário e salva em formato binário. Todos os outros tipos de arquivo xls salva em formato XML aberto. Não estávamos aqui para falar sobre vantagens, mas desvantagens. A única desvantagem real vai ser a compatibilidade na utilização dos dados com o software que quer XML em vez de binário (servidor web, por exemplo). Se você ligar um monte de sistemas juntos, isso pode causar um problema com uma das camadas, como XML foi desenvolvido especificamente para esta finalidade. Em geral, não há outras desvantagens além do fato de que você pode não ser capaz de dizer se há macros nele ou não, pois não há nenhuma versão macro-livre deste formato. Você pode apenas alterar suas configurações de macro para desativar com prompt e examinar visual basic para determinar se há macros nocivas. Uma lista atrativa para usar xlsb como seu formato de arquivo padrão. Eu não uso o formato xlsb por dois motivos. Como o arquivo tem todos os XML mais o binário, o arquivo é maior que o arquivo xlsx ou xlsm correspondente. Quando eu estava trabalhando com um arquivo grande e complexo, o binário ficaria corrompido com freqüência e eu teria que restaurar a partir de uma cópia de backup do arquivo. Update: Eu tentei o formato xlsb quando saiu pela primeira vez e tinha os problemas acima. Problema 1 não acontece com o Excel 2010, então talvez o problema 2 também é corrigido. Por outro lado, mesmo se todo o acima é fixo, eu ainda não vou usar xlsb muitas vezes porque a maioria dos meus arquivos do Excel são realmente projetos VBA. Acompanhar um binário em um repositório de código irá inchar o repositório rapidamente. (Eu uso o Mercurial para o meu repositório de código e, com a extensão zipdoc ativada, posso dizer que os arquivos xlsx AND xlsm são arquivos de texto XML compactados em vez de binários.) Respondeu 21 de fevereiro às 22: 17Nando o arquivo Binário Excel. xls Formatar O MS-XLS: Especificação de Estrutura do Formato de Arquivo Binário Excel (.xls) é usado pelo Microsoft Office Excel 2003, Microsoft Excel 2002, Microsoft Excel 2000 e Microsoft Excel 97. O formato é organizado em córregos e submissões. Cada planilha eletrônica é armazenada em seu próprio sub-fluxo. Todos os dados estão contidos em registros que têm cabeçalhos, que dão o tipo de registro e comprimento. Os registros de células, que contêm dados de células reais, bem como fórmulas e propriedades de células, residem na tabela de células. Os valores de seqüência de caracteres não são armazenados no registro de célula, mas em uma tabela de seqüências de caracteres compartilhada, que o registro de célula faz referência. Os registros de linha contêm informações de propriedade para locais de linhas e células. Somente as células que contêm dados ou formatação individual são armazenadas no subconjunto. O Microsoft Office Excel 2007 usa a especificação de estrutura do MS-XLSB: Excel Binied File Format (.xlsb). Este formato é semelhante ao MS-XLS, mas não é explicitamente discutido neste artigo. A maneira recomendada de executar a maioria das tarefas de programação no Microsoft Excel é usar o Excel Primário Interop Assemblies. Estes são um conjunto de classes que fornecem um modelo de objeto completo para trabalhar com o Microsoft Excel. Esta série de artigos trata apenas de cenários avançados, como por exemplo, onde o Microsoft Excel não está instalado. Componentes-chave do formato de arquivo MS-XLS O formato de arquivo MS-XLS contém fluxos, sub-fluxos e registros. Todos os registros em um documento MS-XLS começam com um inteiro sem sinal de 2 bytes para especificar Tipo de registro (rt) e outro para Count de bytes (cb). Os registros podem ser lidos ou ignorados lendo esses valores, então lendo ou ignorando o número de bytes especificado por cb, dependendo do tipo de registro especificado por rt. Um registro não pode exceder 8224 bytes. Se os dados a que o registro se aplica for maior do que isso, o resto será armazenado em um ou mais registros continuados. As descrições de registro na Especificação de Estrutura de Formato de Arquivo Binário do Excel (.xls) do MS-XLS: Excel não incluem menção dos valores de Tipo de Registro (rt) e Contagem de Bytes (cb) que compõem os primeiros quatro bytes do registro. Para obter mais informações, consulte a seção 2.1.4 da especificação MS-XLS. Estes são os principais fluxos, sub-fluxos e registros em um arquivo em formato MS-XLS. Os locais de bytes específicos dentro de um registro são contados a partir do final do campo cb. O fluxo de pasta de trabalho é o fluxo principal em um arquivo. xls. Ele contém múltiplos fluxos, cada um dos quais começa com um registro de Início de Arquivo (BOF) e termina com um registro de fim de arquivo (EOF). O primeiro fluxo é sempre o fluxo contínuo de Globals, e o resto são submissões de folha. Estes incluem planilhas, folhas de macro, folhas de gráficos, folhas de diálogo e folhas de módulos VBA. O sumário do Globals especifica propriedades e dados globais em uma pasta de trabalho. Ele também inclui um registro de BoundSheet8 para cada sub-fluxo no fluxo do livro. Um registro BoundSheet8 fornece informações sobre uma sub-estrutura da folha. Isso inclui nome, localização, tipo e visibilidade. Os primeiros 4 bytes do registro, o lbPlyPos FilePointer, especifica a posição no fluxo de pasta de trabalho onde o subprograma da folha é iniciado. O subconjunto da planilha especifica uma folha em uma pasta de trabalho. A tabela de células é a parte de um fluxo de folhas onde as células são armazenadas. Ele contém uma série de blocos de linha, cada um dos quais tem uma capacidade de 32 linhas de células e é preenchido sequencialmente. Cada bloco de linha começa com uma série de registros de linha, seguido pelas células que vão nas linhas e termina com um registro DBCell, que dá o deslocamento inicial da primeira célula de cada linha no bloco. Um registro de linha define uma linha em uma folha. Esta é uma estrutura complexa, mas apenas os primeiros 6 bytes são necessários para a recuperação básica de conteúdo. Estes dão o índice de linha e as colunas das primeiras células e últimas células que contêm dados ou formatação única na linha. Todas as células em um bloco de linha são armazenadas após a última linha no bloco. Existem sete tipos de registros que representam células reais em uma planilha. A maioria dos registros de células começa com uma estrutura celular de 6 bytes. Os dois primeiros bytes especificam a linha, os 2 bytes seguintes especificam a coluna e os últimos 2 bytes especificam um registro XF no subfluxo Globals que contém informações de formatação. Os seguintes registros representam os diferentes tipos de células. A menos que especificado de outra forma, os 6 primeiros bytes são ocupados pela estrutura celular e os bytes restantes contêm o valor. Um registro de célula em branco especifica uma célula em branco sem fórmula ou valor. Este tipo de registro é usado apenas para células que contêm formatação individual, caso contrário, as células em branco são armazenadas nos registros do MulBlank ou não. Um registro de célula RK contém um número de 32 bits. O Excel converte automaticamente números que podem ser representados em 32 bits ou menos para este formato para armazenamento como forma de reduzir o tamanho do arquivo. Em vez de uma estrutura celular de 6 bytes, os 2 primeiros bytes especificam a linha e os 2 segundos bytes especificam a coluna. Os restantes 6 bytes definem o número em uma estrutura RkRec para otimização de disco e memória. Um registro de célula BoolErr contém uma estrutura de Bes de 2 bytes que pode ser um valor booleano ou um código de erro. Um registro de célula Número contém um número de ponto flutuante de 64 bits. Um registro de célula LabelSst contém um inteiro de 4 bytes que especifica uma string na Tabela de Strings Compartilhadas (SST). Especificamente, o inteiro corresponde ao índice da matriz no campo RGB da SST. Um registro de célula Fórmula contém tanto a fórmula quanto os dados resultantes. O valor exibido na célula é definido em uma estrutura FormulaValue nos 8 bytes que seguem a estrutura celular. Os próximos 6 bytes podem ser ignorados e o resto da gravação é uma estrutura CellParsedFormula que contém a própria fórmula. Uma gravação MulBlank especifica uma série de células em branco seguidas. Os primeiros 2 bytes dão a linha e os próximos 2 bytes dão a coluna na qual a série de espaços em branco começa. Em seguida, uma matriz de comprimento variável de estruturas de células segue para armazenar informações de formatação e os últimos 2 bytes mostram a coluna em que a série de espaços em branco termina. Um registro MulRk é como um registro MulBlank, mas em vez de células em branco, um registro MulRk consiste em dados RK em estruturas RkRec. A tabela de cadeias compartilhadas (SST) contém todos os valores de seqüência de caracteres na pasta de trabalho. Esses valores são referenciados na planilha por registros de células LabelSst. Os primeiros 8 bytes do SST fornecem o número de referências a cadeias de caracteres na pasta de trabalho e o número de valores de seqüência únicos na SST. O resto é uma matriz de estruturas XLUnicodeRichExtendedString que contêm as próprias cadeias de caracteres como matrizes de caracteres. O bit 16 desta estrutura especifica se os caracteres são 1 byte ou 2 bytes cada. Você pode estender a estrutura SST e a estrutura XLUnicodeRichExtendedString usando os registros Continuar se o número ou o comprimento das strings excederem os limites. Extraindo dados de arquivos do Excel Todo o conteúdo do arquivo em formato MS-XLS vive nas sub-regras da folha. Embora você possa carregar cada folha de fundo de forma indiscriminada, você ganha mais controle e eficiência usando os registros do BoundSheet8 para localizar apenas as folhas que deseja ler. A análise de fórmulas e informações de formatação está além do escopo deste artigo. O procedimento a seguir mostra como acessar todos os dados de uma planilha.
No comments:
Post a Comment