Oversikt over XLSX-fasade (lxHandleX)
lxHandleX er den dedikerte fasadeenheten for Excel 2007+ (.xlsx) og OpenDocument Spreadsheet (.ods) arbeidsbokarbeidsflyter. Den eksisterer side om side med den opprinnelige lxHandle-fasaden, slik at arvet kode fortsetter å fungere uten endringer:
lxHandle— primær fasade for Excel 97-2003 BIFF-formatet (.xls), HTML, RTF, CSV og TSV-eksport. All eksisterende brukerkode fortsetter å bruke denne enheten uendretlxHandleX— primær fasade for Excel 2007+ OOXML-formatet (.xlsx) og ODS lese-/skrivearbeidsflyter. Tilbyr egne arbeidsbok- og regnearktyper slik at XLSX-spesifikk oppførsel ikke ettermonteres på BIFF-kodingen, og eksponerer ODS-import, eksport samt automatisk ODS-gjenkjenning viaOpen,SourceFormatogTODSExportOptions
Klassehierarki
XLSX-fasaden eksponerer følgende klasser:
type
TXLSXWorkbook = class // top-level workbook with SaveAs / Open
TXLSXHtmlExportOptions = class // HTML document, style, BOM, and table class options
TODSExportOptions = class // ODS export options for generator, chart, and image output
TXLSXSheets = class // worksheet collection on the workbook
TXLSXFonts = class // workbook-level font palette
TXLSXFont = class // single font descriptor
TXLSXFills = class // workbook-level fill palette
TXLSXFill = class // single fill (pattern + fg/bg color)
TXLSXBorders = class // workbook-level border palette
TXLSXBorder = class // four edges + diagonal border
TXLSXNumberFormats = class // workbook-level custom format codes
TXLSXDefinedNames = class // workbook-level named ranges
TXLSXWorksheet = class // single worksheet with cells and decorations
TXLSXCells = class // cell collection on the worksheet
TXLSXCell = class // single cell (value, formula, *Index style refs)
TXLSXRange = class // rectangular worksheet range wrapper
TXLSXMergedCells = class // merged-range collection
TXLSXHyperlinks = class // hyperlink collection
TXLSXComments = class // cell-comment collection
TXLSXImages = class // image collection (drawings + media)
TXLSXConditionalFormats = class // conditional formatting rules
TXLSXDataValidations = class // data-validation rules
TXLSXTables = class // Excel-style table collection
TXLSXCharts = class // chart collection (anchored or full-page)
TXLSXChart = class // single chart (column / bar / line / pie / scatter / bubble / radar)
TXLSXChartSeries = class // chart series with category, value, and bubble-size ranges
TXLSXTextBox = class // standalone worksheet drawing text box
TXLSXRichText = class // per-run rich-text payload for cells
TXLSXAlignment = class // cell alignment / wrap / indent / rotation
TXLSXExternalLinks = class // external workbook link collection
TXLSXExternalLink = class // single external workbook reference (Target URL + SheetNames)
Disse klassene er uavhengige av lxHandle.TXLSWorkBook og lxHandle.TXLSWorksheet. Applikasjoner som trenger begge formatene, kan bruke begge fasadene side om side:
uses
lxHandle, // XLS / HTML / RTF / CSV workbook (TXLSWorkBook)
lxHandleX; // XLSX workbook (TXLSXWorkbook)
Hurtigstart
XLSX-fasaden følger de samme konvensjonene for kallstruktur som BIFF-fasaden — SaveAs / Open på arbeidsboken, Sheets.Add / Sheets[i] på regnearksamlingen og Cells.Item[Row, Col].Value på cellesamlingen. Eksempelet nedenfor skriver en liten arbeidsbok som bruker alle funksjoner som støttes for øyeblikket:
uses lxHandleX;
var
wb: TXLSXWorkbook;
ws: TXLSXWorksheet;
bold, yellow, box, currency: Integer;
begin
wb := TXLSXWorkbook.Create;
try
bold := wb.Fonts.Add('Calibri', 12, True, False);
yellow := wb.Fills.AddSolid($FFFFFF00);
box := wb.Borders.AddBox(xlsxBorderThin);
currency := wb.NumberFormats.Add('"$"#,##0.00');
ws := wb.Sheets.Add('Demo');
ws.Cells.Item[1, 1].Value := 'Hello';
ws.Cells.Item[1, 1].FontIndex := bold + 1;
ws.Cells.Item[1, 2].Value := 123.45;
ws.Cells.Item[1, 2].NumberFormatIndex := currency + 1;
ws.Cells.Item[2, 1].Value := Now; // tagged as date
ws.Cells.Item[2, 2].Formula := 'SUM(B1:B1)';
ws.Cells.Item[3, 1].FillIndex := yellow + 1; // highlight cell
ws.Cells.Item[3, 2].BorderIndex := box + 1; // boxed cell
ws.ColWidth[1] := 24;
ws.RowHeight[1] := 28;
ws.MergeCells(4, 1, 4, 3);
ws.Range['A8:C10'].Merge(True); // merge across rows
ws.AddHyperlink(5, 1, 'https://www.loslab.com', 'Visit losLab');
ws.AddComment(5, 2, 'Important note', 'Kevin');
ws.AddImageFromFile(6, 1, 'logo.png');
ws.AddConditionalFormat('B1:B10', xlsxCfOpGreaterThan, '100');
ws.AddListValidation('C1:C5', 'Yes,No,Maybe');
wb.DefinedNames.Add('SalesData', 'Demo!$A$1:$B$10');
wb.SaveAs('demo.xlsx');
finally
wb.Free;
end;
end;
Støttede funksjoner
- Celleverdier: tall, boolske verdier, strenger, datoer, formler
- Delt strengtabell (
xl/sharedStrings.xml) med deduplisering ved skriving - Stilpaletter på arbeidsboknivå —
Workbook.Fonts,Fills,BordersogNumberFormats— pluss per-celleFontIndex/FillIndex/BorderIndex/NumberFormatIndex. SaveAs oppretter ekte<fonts>/<fills>/<borders>/<numFmts>+<cellXfs>-blokker; Open tolker dem tilbake slik at navn/størrelse/fet/kursiv/farge, fyllmønstre, kantlinjer og egendefinerte tallformater bevares etter lagring og gjenåpning - Kolonnebredder via
Worksheet.ColWidth[Col]og radhøyder viaWorksheet.RowHeight[Row](regnearkets<cols>-blokk og per-<row>ht-attributter) - Innebygd dato-
cellXfved indeksXlsxXfIndexDate;TDateTime-verdier merkes automatisk - Slåtte celler (
<mergeCells>), inkludertTXLSXRange.Merge(True)for Excel-stil sammenslåing på tvers av rader - Regnearkområder via
Worksheet.Range,RCRange,UsedRange,EntireRowogEntireColumn. Se TXLSXRange for batchverdier, formler,SetArrayFormula, stilindekser, tallformater, kantlinjer, beskyttelsesflagg, autofit, fletting, forskyvning, størrelsesendring,Sortmultikildesortering,ApplyBuiltinStyleinnebygde cellestiler, kopier/flytt-hjelpere, innsetting/sletting av hele rader/kolonner og HTML-eksport av valgt område - Hyperkoblinger (
<hyperlinks>) støttet av rels-filer per regneark for eksterne URL-er - Cellekommentarer med VML-tegning (
xl/commentsN.xml+xl/drawings/vmlDrawingN.vml) slik at snakkebobler rendres i Excel - Innebygde bilder (PNG / JPEG / GIF / BMP) via
Worksheet.Images, skrevet tilxl/media/imageN.<ext>pluss per-regneark tegning XML og rels - Frittstående tegnede tekstbokser via
Worksheet.AddTextBox, skrevet som regnearkets tegningsformer med tekstkropper i stedet for cellekommentarer, med direkte anker-oppslag og hjelpere for sletting av områder - Navngitte områder på arbeidsboknivå via
Workbook.DefinedNames(med gyldighetsområde for arbeidsboken eller for regneark viaSheetIndex) - Formelberegning via
Workbook.CalculateogWorksheet.Calculate, som deler XLS-formeltolkeren og evaluereren for formler som starter med likhetstegn, celle- og områdereferanser, refererte formelceller, kryss-ark-referanser, navngitte områder og støttede tekst-, dato-, arbeidsdag-, ingeniør/base-konvertering, bitvise, statistiske, aggregerte og matematiske funksjoner; brukWorkbook.OnUserFunctionellerWorkbook.OnUserFunctionExfor å løse egendefinerte eller ustøttede funksjoner - Betinget formatering per regneark (
Worksheet.ConditionalFormats) og datavalidering (Worksheet.DataValidations), inkludert hurtigmetoden for rullegardinlisteAddListValidation(Range, Items) - Rad-/kolonneinndelingsgrupper (
RowOutlineLevel,ColOutlineLevel), skjult tilstand (RowHidden,ColHidden) og kollapset gruppetilstand (RowCollapsed,ColCollapsed) - Frysing av ruter via
Worksheet.FreezePanes(Row, Col) - Sideoppsett — seks marg-egenskaper, papirstørrelse, retning, sideskalering, tilpass til bredde / tilpass til høyde, pluss
HeaderText/FooterText. NavngittexlsxPaper*-konstanter somxlsxPaperLetter,xlsxPaperA4,xlsxPaperA3ogxlsxPaperLegalkan tilordnesPaperSize - Autofilter (
Worksheet.SetAutoFilter) - Excel-lignende tabeller (TXLSXTable) med stilinformasjon og tabellkolonner
Fasadeunderinndelings-API-er
Fasadesamlingsklassene administrerer betingede formater, datavalideringer, navngitte områder, bilder og tabeller. Her er kjernemedlemmene i hver samling:
- TXLSXConditionalFormats: Eksponerer regler for betinget formatering. Egenskaper:
CountMetoder:AddAboveAverage,AddColorScale2,AddColorScale3,AddDataBar,AddExisting,AddExpression,AddIconSet,AddSimpleRule,AddTextRule,AddTop10,DeleteAt,DeleteInRange,FindAt,IndexOfCell - TXLSXDataValidations: Eksponerer datavalideringer. Egenskaper:
CountMetoder:AddExisting,AddList,DeleteAt,DeleteInRange,FindAt,IndexOfCell - TXLSXDefinedNames: Eksponerer definerte navn (navngitte områder). Egenskaper:
CountMetoder:DeleteByName,FindByName,IndexOfName - TXLSXImages: Eksponerer innebygde bilder. Egenskaper:
CountMetoder:DeleteAt,DeleteInRange,FindAt,IndexOfCell - TXLSXTables: Eksponerer Excel-tabeller. Egenskaper:
CountMetoder:AddExisting,DeleteByName,FindByName,IndexOfName
Støttede funksjoner
- Dokumentegenskaper (
Workbook.Title,Author,Subject,Keywords,Description,LastModifiedBy,Companyosv.) skrevet tildocProps/core.xml+docProps/app.xml - Passordbeskyttelse for regneark/arbeidsbok (arvet 16-biters hash) via
Worksheet.Protect/Workbook.ProtectWorkbook; Excel-kompatibel AES passordbeskyttet lagring viaSaveAsEncrypted, som bruker AES-NI-akselerasjon når tilgjengelig, og bærbar programvare-fallback ellers.OpenEncryptedkaster fremdeles feil for krypterte pakker inntil dekrypteringsstøtte er på plass - VBA-prosjektbevaring via
Workbook.LoadVbaProjectFromFile/VbaProject; byte-sekvensen lagres og lastes uendret. GyldigevbaProject.bin-data kan også inspiseres viaWorkbook.ParsedVBAProject - Diagrammer — stolpe / søyle / linje / kake / område / ring via TXLSXChart, forankret på et regneark (
Worksheet.AddChart) eller som helside på et dedikert diagramark viaWorkbook.AddChartSheet(Name, Type, Title) - Riktekst-celler via TXLSXRichText med skriftformatering per tegnsekvens; bevares gjennom den delte strengtabellen
- Interne hyperkoblingsankere via
Worksheet.AddHyperlinkToCell(Row, Col, "Sheet2!A1")(ingen rels-relasjon nødvendig) - API for kopiering/flytting/tømming av celleområder på regnearket (
CopyRange,CopyRangeTo,MoveRange,ClearRange) - Cellejustering via TXLSXAlignment + per-celle
AlignmentIndex - Fanefarge for regneark via
Worksheet.TabColor/TabColorIsAuto - Visningsmodus for regneark via
Worksheet.View, inkludert normalvisning, forhåndsvisning av sideskift og sideoppsettvisning - Strømmende SaveAs-bane (
Workbook.StreamingWrite := True) som bygger og skriver hvert regneark uten å holde de andre i minnet; XML-akkumulatoren per rad brukerTXLSWideStringBuilderslik at cellesløyfen forblir lineær - Gjenåpning (Round-trip) for alt ovenfor unntatt krypterte XLSX-pakker og diagramarkidentifikasjon, som faller tilbake på den dokumenterte delvise oppførselen
- Strømbasert eksport og import:
SaveAs(Stream),Open(Stream)for minne- eller BLOB-feltbruk - Lese/skrive OpenDocument Spreadsheet:
Workbook.OpenODSog den generiskeWorkbook.Openkan laste.ods-pakker, mensWorkbook.SaveAsODSogSaveAs(..., xlsxOpenDocumentSpreadsheet)skriver ODS-utdata direkte. Formatstøtten dekker verdier, formler, stiler, rik tekst, rad-/kolonnedimensjoner, sammenslåinger, hyperkoblinger, bilder, diagrammer, navngitte områder, AutoFilter, betingede formater, datavalideringer, frysing av ruter, sideoppsett, topptekst/bunntekst, utskriftsområder, sideskift, inndelingsgrupper, fanefarge og ark-synlighet på tvers av støttede lese-/skriveoperasjoner - ODS-eksportalternativer: overfør
TODSExportOptionstilSaveAsODSfor å overstyre dokumentgeneratorstrengen eller undertrykke diagram- og bildedeler for å produsere en mindre pakke - Import av skilletegn-separert tekst:
Workbook.OpenCSV(FileName)ogWorkbook.OpenCSV(Stream)importerer CSV- eller TSV-data med automatisk deteksjon av skilletegn, deteksjon av BOM-koding, koding i henhold til RFC 4180 og valgfri typeutledning av verdier.Open(FileName)ruter.csvog.tsv-filer til importøren automatisk - Metadanningsskanning for arbeidsbøker:
Workbook.GetSheetNames(FileName, List)ogWorkbook.GetSheetNames(Stream, List)leser ordnede arknavn fraxl/workbook.xmluten å laste regnearkets XML - Cellebeskyttelse:
TXLSXCell.LockedogFormulaHidden— kontrollerer hvilke celler som er redigerbare, eller hvilke formler som er synlige når arket er beskyttet - Automatisk tilpasning av kolonnebredde og radhøyde fra celleinnhold:
Worksheet.AutoFitColumn,AutoFitColumns,AutoFitRow,AutoFitRows - Innsetting og sletting av rader/kolonner med full kaskade:
InsertRows,DeleteRows,InsertCols,DeleteCols. Sideeffekter forplanter seg gjennom celler, sammenslåtte områder, hyperkoblinger, kommentarer, frosne ruter, områdereferansestrenger, tabeller, celleformler, betinget formatering-/datavalideringsformler, interne hyperkoblingsmål, utskriftsoppsett-referanser, manuelle sideskift, kriterier for autofilterkolonner, diagramseriers områder, definerte navn, bildeankere og diagramankere - Utvidet sideoppsett:
PrintArea,PrintTitleRows,PrintTitleCols,PrintGridlines,PrintHeadings,BlackAndWhite,Draft,PrintNotes,PrintOverThenDown - Ark-synlighet:
Worksheet.Visibility(xlsxSheetVisible/xlsxSheetHidden/xlsxSheetVeryHidden) ogIsSelected - Manuelle sideskift:
AddRowBreak,AddColBreak, indeks-oppslag og hjelpere for områdesletting - Autofilter kolonne-kriterier:
Worksheet.AddAutoFilterColumnmed enkelt- eller AND/OR to-kriterie filterregler, plussWorksheet.AutoFilterColumns.FindByColIdogDeleteByColIdfor direkte kriterie-oppslag og sletting (TXLSXAutoFilterColumn) - Dato-epoke for arbeidsbok:
Workbook.Date1904veksler mellom 1900-epoken (Windows standard) og 1904-epoken (Mac) - Diagonale kantlinjer:
TXLSXBorder.DiagonalUpogDiagonalDownaktiverer de diagonale linjene;Diagonal-kanten bærer stilen og fargen - Utvidede skriftype-egenskaper:
TXLSXFont.VertAlign(hevet / senket skrift),OutlineFont,Shadow,Family,CharSet - Metadata for navngitte områder:
TXLSXDefinedName.HiddenogComment - Visningsalternativer for regneark:
Worksheet.Zoom,DisplayGridLines,DisplayZeros,DisplayRightToLeft,StandardWidth,StandardHeight - OOXML eldre indeksert fargepalett:
Workbook.IndexedColor[0..63]medResetIndexedColors - Eksterne arbeidsbokkoblinger:
Workbook.ExternalLinks/ TXLSXExternalLink — Mål-URL + SheetNames metadata round-trip - Temafargestøtte på
TXLSXFont,TXLSXFillogTXLSXBorderEdge: EgenskapeneColorTheme/ColorIndex/TintAndShademed prioritert rekkefølge (tema > indeksert > RGB) - CSV-eksport:
Workbook.SaveAsCSV— 4 overlastinger (FileName eller Stream × aktivt ark / spesifisert SheetIndex + skilletegn), UTF-8 med BOM, RFC 4180-koding - HTML-eksport:
Workbook.SaveAsHTMLogTXLSXRange.SaveAsHTMLskriver HTML5-tabeller for et helt regneark eller bare det valgte rektangelet. Overlastede metoder akseptererTXLSXHtmlExportOptionsfor fullstendig dokument-utdata, stilemisjon, BOM-emisjon og tabellklassenavn - RTF-eksport:
Workbook.SaveAsRTF— 4 overlastinger, RTF 1.6-tabell med kolonnebredder, skriftformatering per tegnsekvens og full-BMP unicode via fortegnede 16-biters\uN?-kontrollkoder
Delt infrastruktur
Begge fasadene deler et felles sett med hjelpeenheter på lavere nivå, noe som betyr at stilbeskrivere, hashtabeller, AVL-trær, ZIP og XML I/O, RGB-til-HLS-konverteringer og strengbyggere skrives én gang og brukes av begge baner. De delte hjelperne inkluderer:
lxStyleXf,lxStyleFont,lxStyleColor,lxStyleFill,lxStyleBorder— moderne stilbeskriverelxRgb— RGB / HLS fargekonverteringlxHashTable,lxKeyList,lxAvlTree,lxCols,lxRows— dedupliserende beholdere og AVL-støttede cellehaug-byggesteinerlxXmlReader,lxXmlWriter,lxZipArchive— OOXML transportlaglxStrBuilder,lxCacheStream,lxWStream,lxZlibStream— strøm- og strengmonteringshjelpere