Fördelar med. xlsb Excel-binär arbetsbokformat av DataSafeXL, den 12 november 2014 En hel del användare är inte medvetna om de många fördelarna och fördelarna med. xlsb Excel Binär Workbook Format. Excel Binär Workbook-filer lagrar information i binärt format istället för XML-format som med de flesta andra Excel-filer. Eftersom XLSB-filer är binära kan de läsas från och skrivas till mycket snabbare, vilket gör dem extremt användbara för mycket stora kalkylblad. Detta innebär också att med. xlsb-filer kommer beräkningarna att bli snabbare och arbetsböckerna mycket mindre..xlsx laddar 4 gånger längre än. xlsb och sparar 2 gånger långsammare och har 1,5 gånger större fil. En användare från ledande forum Stackoverflow testade detta på ett genererat kalkylblad med 108217000 rader 18217000 kolumner 1082170008217000 (107) celler med enkla kedjiga 1 formler:.xlsx. xlsb laddningstid 165s 43s sparar tid 115s 61s filstorlek 91 MB 65 MB Förutom från en säkerhetssynpunkt, eftersom data är i binärformat och inte i XML. xlsb-filer kommer att visa oläsligt innehåll om en användare försöker ändra filens förlängning till. zip. Andra fördelar med. xlsb-filformat inkluderar: 8211 Spara i binära låter formler sparas ordentligt om de är längre än 8192 teckengränsen 8211 Makroer, VBA-kod stöds fullt ut Nackdelar och nackdelar med. xlsb-filer: 8211 Inga bandändringar tillåtna för XLSB-format. Du måste konvertera tillbaka till XLSM, ändra ditt band och sedan tillbaka till XLSB 8211 En eventuell brist på kompatibilitet med OpenOffice 8211 Ej kompatibel med Excel 2003 och tidigare versioner 8211 Kompatibilitet att använda data med programvara som vill ha XML istället för binär (web server till exempel). Om du länker många system tillsammans kan det orsaka problem med ett av lagren, eftersom XML utvecklades specifikt för detta ändamål. Vår prisbelönta säkerhetsprogram XLSafe CORE stöder fullt ut. xlsb-tillägget och vi rekommenderar starkt detta för mycket stora och komplexa filer. Ron de Bruin Excel Automation Använd VBA SaveAs i Excel 2007-2016 Information Du ser mycket gammal SaveAs-kod som gör Ange inte filen FileFormat. I Excel-versioner före Excel 2007 kommer kod utan denna parameter inte att orsaka för många problem eftersom Excel kommer att använda nuvarande FileFormat för den befintliga filen och standardfilen FileFormat för nya filer är en (xls) i 97-2003 eftersom det inte finns någon annan Excel filformat före Excel 2007. Men eftersom det finns så många nya filformat i Excel 2007-2016, borde vi inte använda kod så här som inte anger filen FileFormat-parametern. I Excel 2007-2016 kräver SaveAs att du ska ge både filen FileFormat och rätt filtillägg. I Excel 2007-2016 kommer det här att misslyckas om ActiveWorkbook inte är en xlsm-fil ActiveWorkbook. SaveAs-kvot: ron. xlsmquot Denna kod kommer alltid att fungera ActiveWorkbook. SaveAs quotC: ron. xlsmquot, filformat: 52 52 xlOpenXMLWorkbookMacroEnabled xlsm (med makron under 2007-2016) Dessa är de viktigaste filformat i Excel 2007-2016, Not. I Excel för Mac är värdena 1 51 xlOpenXMLWorkbook (utan makron 2007-2016, xlsx) 52 xlOpenXMLWorkbookMacroEnabled (med eller utan makron 2007-2016, xlsm) 50 xlExcel12 (Excel binär arbetsbok 2007-2016 med eller utan makron, xlsb) 56 xlExcel8 (97-2003 format i Excel 2007-2016, xls) Obs. Jag använder alltid FileFormat-numren i stället för de definierade konstanterna i min kod så att den kommer att kompilera OK när jag kopierar koden i en Excel 97-2003-arbetsbok (Till exempel kan Excel 97-2003 inte veta vad xlOpenXMLWorkbookMacroEnabled-konstanten är). Nedan finns två grundläggande kodexemplar för att kopiera ActiveSheet till en ny Arbetsbok och spara den i ett format som matchar filförlängningen i överordnad arbetsbok. Det andra exemplet använder GetSaveAsFilename för att fråga dig om ett filnamn. Exempel 1 du kan använda i Excel 97-2016. Exempel 2 du kan använda i Excel 2000-2016. Om du kör koden i Excel 2007-2016 kommer den att titta på FileFormat i överordnad arbetsbok och spara den nya filen i det formatet. Endast om föräldrarnas arbetsbok är en xlsm-fil och om det inte finns någon VBA-kod i den nya arbetsboken sparar den den nya filen som xlsx. Om föräldrarnas arbetsbok inte är en xlsx, xlsm eller xls kommer den att sparas som xlsb. Om du alltid vill spara i ett visst format kan du ersätta den här delen av makroet: Med en av de ena linjerna från den här listan FileExtStr quot. xlsbquot: FileFormatNum 50 FileExtStr quot. xlsxquot: FileFormatNum 51 FileExtStr quot. xlsmquot: FileFormatNum 52 Eller kanske du vill spara arbetsbladet för arbetsbladet till csv, txt eller prn. (du kan även använda detta om du kör koden i Excel 97-2003) FileExtStr quot. csvquot: FileFormatNum 6 FileExtStr quot. txtquot: FileFormatNum -4158 FileExtStr quot. prnquot: FileFormatNum 36Excel 20072010 erbjuder ett alternativ att spara mina filer i Excel Binary Workbook-format som verkar vara mindre (50 av storleken i vissa fall) och laddas snabbare. Finns det en nackdel med det här formatet Ska jag undvika det av någon anledning tror jag att det måste vara lite brist på det, eller det skulle vara standard spara format istället för XLSX, men jag kan inte räkna ut vad felen kan vara. XLSX verkar vara ganska vanligt i andra produkter som kan importera Excel-filer, men ingen av dem stöder XLSB - varför inte frågat 16 feb 12 kl 17:10 stängd som primärt opinionsbaserad av slumpmässig 9830 Feb 27 14 kl 23:52 Många bra Frågor genererar en viss åsikt utifrån expertkunskap, men svaren på denna fråga kommer att vara nästan helt baserad på åsikter, snarare än fakta, referenser eller specifik kompetens. Om den här frågan kan omformuleras för att passa reglerna i hjälpcentret. snälla redigera frågan. Som sagt är xlsb en binär filtyp och sparar i binärt format. Alla andra xls-filtyper sparas i öppet XML-format. Var inte här för att prata om fördelar, men nackdelar. Den enda verkliga nackdelen kommer att vara kompatibilitet med att använda data med programvara som vill ha XML istället för binära (webbserver till exempel). Om du länker många system tillsammans kan det orsaka problem med ett av lagren, eftersom XML utvecklades specifikt för detta ändamål. Sammantaget finns det inga andra nackdelar än det faktum att du kanske inte kan berätta om det finns makron i det eller inte, eftersom det inte finns någon makrofri version av detta format. Du kan bara ändra dina makroinställningar för att inaktivera med snabb och granska visuell grundläggande för att avgöra om det finns skadliga makron. En tvingande lista att använda xlsb som standardfilformat. Jag använder inte xlsb-formatet av två skäl. Eftersom filen har alla XML plus binära är filen större än motsvarande xlsx - eller xlsm-fil. När jag arbetade med en stor och komplex fil skulle binäret bli skadad ofta och jag skulle behöva återställa från en säkerhetskopia av filen. Uppdatering: Jag försökte xlsb-formatet när det först kom ut och hade ovanstående problem. Problem 1 händer inte med Excel 2010 så kanske problem 2 är också fixat. Å andra sidan, även om alla ovanstående är fasta, brukar jag fortfarande inte använda xlsb ofta eftersom de flesta av mina Excel-filer egentligen är VBA-projekt. Att spåra ett binärt i en kodförteckning kommer att uppblåsa förvaret ganska snabbt. (Jag använder Mercurial för mitt kodförteckning och med zipdoc-förlängningen påslagen kan jag säga att xlsx OCH xlsm-filer är zippade XML-textfiler i stället för binära.) Svarade 21 feb 12 kl 22:17. Förstå Excel. xls binärfil Format MS-XLS: Excel Binär filformat (.xls) Strukturspecifikation används av Microsoft Office Excel 2003, Microsoft Excel 2002, Microsoft Excel 2000 och Microsoft Excel 97. Formatet är organiserat i strömmar och underströmmar. Varje kalkylark kalkylblad lagras i sin egen delström. Alla data finns i poster som har rubriker, vilket ger inspelningstyp och längd. Cellposter, som innehåller själva celldata samt formler och cellegenskaper, finns i cellbordet. Strängvärden lagras inte i cellposten, men i ett delat strängtabell, som cellrekordet refererar till. Radrekord innehåller fastighetsinformation för rad - och cellplaceringar. Endast celler som innehåller data eller individuell formatering lagras i delströmmen. Microsoft Office Excel 2007 använder MS-XLSB: Strukturspecifikation för Excel binär filformat (.xlsb). Detta format liknar MS-XLS men diskuteras inte uttryckligen i den här artikeln. Det rekommenderade sättet att utföra de flesta programmeringsuppgifterna i Microsoft Excel är att använda Excel Primary Interop Assemblies. Dessa är en uppsättning klasser som ger en komplett objektmodell för att arbeta med Microsoft Excel. Den här artikelserien gäller endast avancerade scenarier, till exempel var Microsoft Excel inte är installerat. Huvudkomponenter i MS-XLS-filformatet MS-XLS-filformatet innehåller strömmar, underströmmar och poster. Alla poster i ett MS-XLS-dokument startar med ett 2-byte unsigned integer för att ange Record Type (rt) och en annan för Count of Bytes (cb). Skivor kan läsas eller hoppas över genom att läsa dessa värden och sedan läsa eller hoppa över antalet byte som anges av cb, beroende på den skivform som anges av rt. En post får inte överstiga 8224 byte. Om data som posten gäller är större än den, lagras resten i en eller flera fortsatta poster. Postbeskrivningarna i MS-XLS: Excel-binär filformat (.xls) - strukturspecifikation innehåller inte namnet på Record Type (rt) och Count of Bytes (cb) - värdena som utgör de första fyra byte av posten. Mer information finns i avsnitt 2.1.4 i MS-XLS-specifikationen. Dessa är huvudströmmarna, underströmmarna och posterna i en MS-XLS-formatfil. Specifika bitgrupper i en post räknas från slutet av cb-fältet. Arbetsboksströmmen är den primära strömmen i en. xls-fil. Den innehåller flera underströmmar, som var och en börjar med en början av fil (BOF) - posten och slutar med en slut på fil (EOF) - posten. Den första strömmen är alltid den globala delströmmen, och resten är arkunderströmmar. Dessa inkluderar arbetsblad, makroark, diagramblad, dialogrutor och VBA-modulark. Globals substream specificerar globala egenskaper och data i en arbetsbok. Den innehåller också en BoundSheet8-post för varje delström i Workbook-strömmen. En BoundSheet8-skiva ger information om en arks subström. Detta inkluderar namn, plats, typ och synlighet. De första 4 byte av posten, lbPlyPos FilePointer, specificerar positionen i arbetsboksströmmen där arkets delström startar. Arbetsbladets delström specificerar ett ark i en arbetsbok. Celltabellen är den del av en arkström där celler lagras. Den innehåller en serie radblock, som var och en har en kapacitet på 32 rader celler och fylls i följd. Varje radblock börjar med en rad rader, följt av cellerna som går i raderna, och slutar med en DBCell-post, vilket ger startförskjutningen för den första cellen i varje rad i blocket. En radrekord definierar en rad i ett ark. Detta är en komplex struktur, men endast de första 6 bytesna behövs för grundläggande innehållsinsamling. Dessa ger radindex och kolumnerna för de första cellerna och de sista cellerna som innehåller data eller unik formatering i raden. Alla celler i ett radblock lagras efter sista raden i blocket. Det finns sju typer av poster som representerar faktiska celler i ett kalkylblad. De flesta cellposter börjar med en 6-byte cellstruktur. De första 2 av dessa byte anger raden, nästa 2 byte anger kolumnen, och de sista 2 byte anger en XF-post i Globals substream som innehåller formateringsinformation. Följande poster representerar olika typer av celler. Om inte annat anges upptas de första 6 bitarna av cellstrukturen och de återstående byterna innehåller värdet. En tom cellpost anger en tom cell som saknar formel eller värde. Den här posttypen används endast för celler som innehåller enskild formatering, tomma celler lagras i MulBlank-poster eller inte alls. En RK-cellpost innehåller ett 32-bitarsnummer. Excel konverterar automatiskt nummer som kan representeras i 32 bitar eller mindre till det här formatet för lagring som ett sätt att minska filstorleken. I stället för en 6-byte cellstruktur, anger de första 2 byte raden och den andra 2 byten anger kolonnen. De återstående 6 bitarna definierar numret i en RkRec-struktur för disk - och minnesoptimering. En BoolErr-cellpost innehåller en 2-bytes Bes-struktur som kan vara antingen ett booleskt värde eller en felkod. En nummercellpost innehåller ett 64-bitars flytpunktsnummer. En LabelSst-cellpost innehåller ett 4-byte heltal som anger en sträng i Shared Strings Table (SST). Speciellt motsvarar heltalet matrisindexet i RGB-fältet i SST. En formelcellpost innehåller både formeln och den resulterande data. Värdet som visas i cellen definieras i en FormulaValue-struktur i de 8 byte som följer cellstrukturen. Nästa 6 byte kan ignoreras, och resten av posten är en CellParsedFormula-struktur som innehåller själva formeln. En MulBlank-post anger en serie tomma celler i rad. De första 2 byte ger raden, och nästa 2 byte ger kolonnen som serien av ämnen börjar. Därefter följer en cellstruktur med variabel längd för att lagra formateringsinformation, och de sista 2 byte visar vilken kolumn serien av ämnen slutar på. En MulRk-post är som en MulBlank-post, men i stället för tomma celler består en MulRk-post av RK-data i RkRec-strukturer. Shared String Table (SST) innehåller alla strängvärden i arbetsboken. Dessa värden refereras i kalkylbladet med LabelSst-cellposter. De första 8 byte av SST ger antalet referenser till strängar i arbetsboken och antalet unika strängvärden i SST. Resten är en uppsättning av XLUnicodeRichExtendedString strukturer som innehåller strängarna själva som karaktärer av tecken. Bit 16 i denna struktur anger om tecknen är 1 byte eller 2 byte vardera. Du kan förlänga både SST-strukturen och XLUnicodeRichExtendedString-strukturen genom att använda Fortsätt poster om strängarnas antal eller längd överstiger deras gränser. Extrahera data från Excel-filer Allt MS-XLS-format innehåller filinnehåll i arkets underströmmar. Även om du kan ladda varje arks substream utan diskriminering, får du mer kontroll och effektivitet genom att använda BoundSheet8-posterna för att hitta bara de ark du vill läsa. Parsiering av formler och formateringsinformation ligger utanför ramen för denna artikel. Följande procedur visar hur du får åtkomst till all data från ett kalkylblad.
No comments:
Post a Comment