Bestandsformaten

Inleiding

Excel kan veel verschillende bestandsformaten aan. Doorheen de jaren zijn er dan ook al heel wat bestandsformaten in gebruik geweest. Denk maar aan .xls, .xlsx, .xlsb, allerhande tekstformaten, … Het gebruikelijke .xls formaat uit Excel versies vóór Excel 2007 werd in Excel 2007 vervangen door twee ondertussen populaire bestandsformaten:

  • .xlsx formaat voor Excel 2007/2010/2013 bestanden zonder macro’s
  • .xlsm formaat voor Excel 2007/2010/2013 bestanden met macro’s

Een bestand dat je maakt in Excel, kan je in verschillende bestandsformaten opslaan. Hiertoe behoort ook PDF sinds versie 2007, en heb je dus geen andere software meer nodig. Hierna volgen meerdere overzichtstabellen als toelichting bij de keuzes die je hebt bij Bestand > Opslaan als….

Bestandsformaten

Excel formaatExtensieBeschrijving
Excel WorkbookxlsxStandaard bestandsformaat binnen Excel 2007/2010/2013, gebaseerd op XML. Geen macro’s!
Excel Macro-Enabled WorkbookxlsmBestandsformaat binnen Excel 2007/2010/2013, gebaseerd op XML. Laat macro’s toe.
Excel Binary WorkbookxlsbBinaire bestandsformaat binnen Excel 2007/2010/2013.
Excel TemplatexltxStandaard bestandsformaat binnen Excel 2007/2010/2013 voor een Template. Geen macro’s!
Excel Macro-Enabled TemplatexltmBestandsformaat binnen Excel 2007/2010/2013 voor een Template. Laat macro’s toe.
Excel 97-2003 WorkbookxlsExcel 97-2003 binaire bestandsformaat
Excel 97-2003 TemplatexltExcel 97-2003 binaire bestandsformaat voor een Template
Microsoft Excel 5.0/95 Workbook xlsExcel 5.0/95 binaire bestandsformaat
Excel Add-InxlamStandaard bestandsformaat binnen Excel 2007/2010/2013, gebaseerd op XML, voor Invoegtoepassingen.
Excel 97-2003 Add-InxlaExcel 97-2003 binaire bestandsformaat voor een Invoegtoepassing
TekstformaatExtensieBeschrijving
Formatted Text (Space delimited)prnSlaat op in een spatie-gescheiden bestandsformaat
Text (Tab delimited)txtSlaat op in een tab-gescheiden tekstbestand voor Windows (**)
Text (Macintosh)txtSlaat op in een tab-gescheiden tekstbestand voor Macintosh (**)
Text (MS-DOS)txtSlaat op in een tab-gescheiden tekstbestand voor MS-DOS (**)
Unicode TexttxtSlaat op als Unicode tekst (*)
CSV (Comma delimited)csvSlaat op in een comma-gescheiden tekstbestand voor Windows (**)
CSV (Macintosh)csvSlaat op in een comma-gescheiden tekstbestand voor Macintosh (**)
CSV (MS-DOS)csvSlaat op in een comma-gescheiden tekstbestand voor MS-DOS (**)
DIF (Data Interchange Format)difSlaat op in het Data Interchange bestandsformaat
SYLK (Symbolic Link)slkSlaat op in het Symbolic Link bestandsformaat
(*): Slaat het hele bestand op in dit formaat, niet enkel het actieve tabblad, zoals de andere formaten.
(**): Tabs, regelafbrekingen en andere karakters worden correct geïnterpreteerd.
Overige formatenExtensieBeschrijving
PDFpdfPDF is een bestandsformaat met een vaste layout dat een bestand toelaat zijn bedoelde layout te behouden wanneer het bekeken of geprint wordt
XPS DocumentxpsXPS heeft dezelfde doelstelling als PDF, maar is een verschillend bestandsformaat
OpenDocument SpreadsheetodsHet OpenDocument Spreadsheet bestandsformaat is een versie van het OpenDocument Format (ODF) v1.1
XML Spreadsheet 2003xmlHet XML Spreadsheet 2003 bestandsformaat
XML DataxmlHet XML Data bestandsformaat
Single File Web Pagemht / mhtmlSlaat een (deel van een) bestand op als een Web pagina, samen met de ondersteunende bestanden en mappen
Web Pagehtm / htmlSlaat een (deel van een) bestand op als een Web pagina, samen met de ondersteunende files ingebed in de Web pagina

VBA-code

Je kan een bestand of tabblad opslaan onder bovenvermelde formaten. Hoe doe je dat? Manueel en via code.

Excel laat toe om het bestandsformaat van geopende betanden te herkennen. Zo kan je bijvoorbeeld uitvragen of een het actieve bestand een Excel 2007/2010/2013 bestandsformaat heeft zonder macro’s (.xlsx). Zet in het Directe Venster (Immediate Window) en druk Enter:

? ActiveWorkbook.FileFormat = xlOpenXMLWorkbook

Dit geeft dan True of False. Alternatief:

? ActiveWorkbook.FileFormat = 56

Elk bestandsformaat heeft een eigen naam en nummer, die je uitvraagt via de eigenschap FileFormat. In het voorbeeld hierboven kijken we of de waarde van de FileFormat eigenschap voor het actieve bestand overeenkomt met de Excel constante xlOpenXMLWorkbook, wat ook verkort kan gebruikt worden als getal 56. Hoe weet je nu de FileFormat constanten die horen bij de verschillende bestandsformaten uit de voorgaande tabellen? Hier zijn opnieuw twee tabellen. De eerste tabel toont de constanten waaronder je een bestand kan opslaan in Excel 2007/2010/2013.

BestandsformaatExtensieFile Format naamFile Format nummer
Excel WorkbookxlsxxlOpenXMLWorkbook / xlWorkbookDefault51
Excel Macro-Enabled WorkbookxlsmxlOpenXMLWorkbookMacroEnabled52
Excel Binary WorkbookxlsbxlExcel1250
Excel TemplatexltxxlOpenXMLTemplate54
Excel Macro-Enabled TemplatexltmxlOpenXMLTemplateMacroEnabled53
Excel 97-2003 WorkbookxlsxlExcel856
Workbook normalxlsxlNormal / xlWorkbookNormal-4143
Excel 97-2003 TemplatexltxlTemplate / xlTemplate817
Microsoft Excel 5.0/95 Workbook xlsxlExcel539
Excel Add-InxlamxlOpenXMLAddIn55
Excel 97-2003 Add-InxlaxlAddIn / xlAddIn818
Formatted Text (Space delimited)prnxlTextPrinter36
Text (Tab delimited)txtxlTextWindows20
Current Platform TexttxtxlCurrentPlatformText-4158
Text (Macintosh)txtxlTextMac19
Text (MS-DOS)txtxlTextMSDOS21
Unicode TexttxtxlUnicodeText42
CSV (Comma delimited)csvxlCSV6
CSV (Macintosh)csvxlCSVMac22
CSV (Windows)csvxlCSVWindows23
CSV (MS-DOS)csvxlCSVMSDOS24
DIF (Data Interchange Format)difxlDIF9
SYLK (Symbolic Link)slkxlSYLK2 / 10
PDFpdfxlTypePDF(*)
XPS DocumentxpsxlTypeXPS(**)
OpenDocument SpreadsheetodsxlOpenDocumentSpreadsheet60
XML Spreadsheet 2003xmlxlXMLSpreadsheet46
XML DataxmlxlXMLSpreadsheet46
Single File Web Pagemht / mhtmlxlWebArchive45
Web Pagehtm / htmlxlHtml44
(*) gebruik: ExportAsFixedFormat met Type = xlTypePDF (constante 0)
(**) gebruik: ExportAsFixedFormat met Type = xlTypeXPS (constante 1)

Gebruik in een macro bijvoorbeeld:

ActiveWorkbook.SaveAs FileName:="C:\MijnBestand", FileFormat:=xlOpenXMLWorkbook

Excel slaat het actieve bestand dan op als MijnBestand.xlsx op de C-schijf. Je hoeft zelf .xlsx niet mee op te geven. Met het verkorte nummer 56:

ActiveWorkbook.SaveAs FileName:="C:\MijnBestand", FileFormat:=56

Het actieve bestand opslaan als PDF of XPS kan via:

ActiveWorkbook.ExportAsFixedFormat Type:=xlTypePDF, FileName:="C:\MijnBestand"
'of
ActiveWorkbook.ExportAsFixedFormat Type:=xlTypeXPS, FileName:="C:\MijnBestand"

Voor hen die lui van aard zijn:

ActiveWorkbook.ExportAsFixedFormat 0, "C:\MijnBestand"
'of
ActiveWorkbook.ExportAsFixedFormat 1, "C:\MijnBestand"

In plaats van het actieve bestand is eender welke (geldige) referentie naar een bestand goed mogelijk. Naast bovenstaande File Format namen en nummers zijn er echter nog een hoop andere. Voorzover ik weet kan je in Excel 2007/2010/2013 een bestand niet opslaan onder deze bestandsformaten, maar je kan wel zulke bestandsformaten openen in Excel en vervolgens uitvragen wat het type is (cf. supra voor voorbeelden). De laatste tabel geeft deze formaten weer; vaak gaat het om oudere in onbruik geraakte bestandsformaten.

BestandsformaatBestandsformaat naamBestandsformaat nummer
DBF2xlDBF27
DBF3xlDBF38
DBF4xlDBF411
Excel2xlExcel216
Excel2 FarEastxlExcel2FarEast27
Excel3xlExcel329
Excel4xlExcel433
Excel4 WorkbookxlExcel4Workbook35
Excel7xlExcel739
Excel9795xlExcel979543
International Add-InxlIntlAddIn26
International MacroxlIntlMacro25
WJ2WD1xlWJ2WD114
WJ3xlWJ340
WJ3FJ3xlWJ3FJ341
WK1xlWK15
WK1ALLxlWK1ALL31
WK1FMTxlWK1FMT30
WK3xlWK315
WK3FM3xlWK3FM332
WK4xlWK438
WorksheetxlWKS4
Works2 FarEastxlWorks2FarEast28
WQ1xlWQ134

Uitsmijter

Om af te ronden is hier nog een stukje code dat ik gebruikte om bestanden onder een bepaald bestandsformaat op te slaan. Zo kon ik kijken wat er in Excel 2007/2010/2013 werkt en wat niet.

Sub FileFormatOnderzoeken()
' Wim Gielis ' http://www.wimgielis.com
''''' ' Lus doorheen de verschillende Bestandsformaten ' 09/02/09 '''''
On Error Resume Next Application.DisplayAlerts = False For i = 1 To 60 With Workbooks.Add .SaveAs Filename:="C:\" & Format(i, "00"), FileFormat:=i .Close End With Next Application.DisplayAlerts = True
End Sub

Zo, dit artikel is verre van het meest amusante artikel op mijn site, maar wel een handig opzoekartikel. Ik kom hier zelf ook geregeld eens kijken.




Over Wim

Wim Gielis is Business Intelligence consultant en Excel expert

Andere links