XLSX Facade-oversigt (lxHandleX)
lxHandleX er den dedikerede facade-enhed til Excel 2007+ (.xlsx) og OpenDocument-regneark (.ods) projektmappe-workflows. Den eksisterer side om side med den oprindelige lxHandle-facade, så ældre kode fortsat fungerer uden ændringer:
lxHandle— den primære facade til Excel 97-2003 BIFF-formatet (.xls) og til eksport til HTML, RTF, CSV og TSV. Al eksisterende brugerkode fortsætter uændret med denne enhedlxHandleX— primær facade for Excel 2007+ OOXML-formatet (.xlsx) og ODS-læse/skrivearbejdsgange; leverer sine egne projektmappe- og regnearkstyper, så XLSX-specifik adfærd ikke eftermonteres på BIFF-kodesporet, og eksponerer ODS-import, -eksport, automatisk ODS-detektion viaOpen,SourceFormatogTODSExportOptions
Klassehierarki
XLSX-facaden 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
TXLSXStructuralEditRegistry = class // ordered application participants for row and column reference updates
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 or combination chart with primary, secondary, date, value, and series axes
TXLSXChartPlotGroup = class // ordered chart-family group with its own series and axis pair
TXLSXChartSeries = class // chart series with formula ranges and typed literal caches
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)
TXLSConnections = class // external data connection collection
TXLSConnection = class // database, web, text, and refresh connection metadata
TXLSQueryTables = class // worksheet query-result collection
TXLSQueryTable = class // query ownership, fields, and result binding
Disse klasser er uafhængige af lxHandle.TXLSWorkBook og lxHandle.TXLSWorksheet. Programmer, der har brug for begge formater, kan bruge begge facader side om side:
uses
lxHandle, // XLS / HTML / RTF / CSV workbook (TXLSWorkBook)
lxHandleX; // XLSX workbook (TXLSXWorkbook)
Hurtig start
XLSX-facaden følger de samme kaldkonventioner som BIFF-facaden — SaveAs / Open på projektmappen, Sheets.Add / Sheets[i] på regnearkssamlingen og Cells.Item[Row, Col].Value på cellesamlingen. Eksemplet nedenfor skriver en lille projektmappe, der afprøver enhver funktion, der understøttes i øjeblikket:
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;
Understøttede funktioner
- Celleværdier: tal, booleans, strenge, datoer, formler
- Tabel med delte strenge (
xl/sharedStrings.xml) med deduplikering på skrivevejen - Stilpaletter på projektmappeniveau —
Workbook.Fonts,Fills,BordersogNumberFormats— plus pr. celleFontIndex/FillIndex/BorderIndex/NumberFormatIndex. SaveAs udsender rigtige<fonts>/<fills>/<borders>/<numFmts>+<cellXfs>-blokke; Open parser dem tilbage, så Name/Size/Bold/Italic/Color, udfyldningsmønstre, kantlinjer og brugerdefinerede talformater alle overlever turen frem og tilbage - Kolonnebredder via
Worksheet.ColWidth[Col]og rækkehøjder viaWorksheet.RowHeight[Row](regnearkets<cols>-blok og pr.<row>ht-attributter) - Indbygget dato-
cellXfpå indeksXlsxXfIndexDate;TDateTime-værdier tagges automatisk - Flettede celler (
<mergeCells>), herunderTXLSXRange.Merge(True)til Excels fletning på tværs af rækker - Regnearksområder via
Worksheet.Range,RCRange,UsedRange,EntireRowogEntireColumn. Se TXLSXRange for batchværdier, formler,SetArrayFormula, stilindeks, talformater, kanter, beskyttelsesflag, autotilpasning, fletning, forskydning, tilpasning af størrelse,Sortmulti-nøglesortering,ApplyBuiltinStyleindbyggede celletypografier, kopierings/flytningshjælpere, række/kolonneindsættelses/sletningshjælpere og valgt område HTML-eksport - Hyperlinks (
<hyperlinks>), bakket op af pr. regneark-rels til eksterne URL'er - Cellekommentarer med VML-tegning (
xl/commentsN.xml+xl/drawings/vmlDrawingN.vml), så ballonerne renderes i Excel - Indlejrede billeder (PNG / JPEG / GIF / BMP) via
Worksheet.Images, skrevet tilxl/media/imageN.<ext>plus tegne-XML og rels pr. ark - Selvstændige tegnede tekstbokse via
Worksheet.AddTextBox, skrevet som tegnefigurer med tekstkroppe i stedet for cellekommentarer, med direkte ankeropslag og hjælpere til sletning af områder - Navngivne områder på projektmappeniveau via
Workbook.DefinedNames(projektmappe- eller ark-omfang viaSheetIndex) - Formelberegning via
Workbook.CalculateogWorksheet.Calculate, som deler XLS-formelparseren og -evaluatoren til formler med indledende lighedstegn, celle- og intervalreferencer, refererede formelceller, krydsarkreferencer, definerede intervalnavne samt understøttede tekst-, dato-, arbejdsdags-, ingeniør/basekonverterings-, bitvise, statistiske, aggregerede og matematiske funktioner; brugWorkbook.OnUserFunctionellerWorkbook.OnUserFunctionExtil at løse brugerdefinerede eller ikke-understøttede funktioner - Betinget formatering pr. regneark (
Worksheet.ConditionalFormats) og datavalidering (Worksheet.DataValidations) inklusive genvejen til rullemenuenAddListValidation(Range, Items) - Række- / kolonnedispositionsgrupper (
RowOutlineLevel,ColOutlineLevel), skjult tilstand (RowHidden,ColHidden) og kollapset gruppetilstand (RowCollapsed,ColCollapsed) - Frosne ruder via
Worksheet.FreezePanes(Row, Col) - Sideopsætning — seks margenegenskaber, papirstørrelse, retning, sideskalering, tilpas til bredde / tilpas til højde, plus
HeaderText/FooterText. NavngivnexlsxPaper*-konstanter somxlsxPaperLetter,xlsxPaperA4,xlsxPaperA3ogxlsxPaperLegalkan tildeles tilPaperSize - Autofilter (
Worksheet.SetAutoFilter) - Tabeller i Excel-stil (TXLSXTable) med typografiinfo og tableColumns
Facade sub-samling API'er
Facade-samlingsklasserne styrer betingede formater, datavalideringer, navngivne områder, billeder og tabeller. Her er de centrale medlemmer af hver samling:
- TXLSXConditionalFormats: Eksponerer regler for betinget formatering. Egenskaber:
Count. Metoder:AddAboveAverage,AddColorScale2,AddColorScale3,AddDataBar,AddExisting,AddExpression,AddIconSet,AddSimpleRule,AddTextRule,AddTop10,DeleteAt,DeleteInRange,FindAt,IndexOfCell - TXLSXDataValidations: Eksponerer datavalideringer. Egenskaber:
Count. Metoder:AddExisting,AddList,DeleteAt,DeleteInRange,FindAt,IndexOfCell - TXLSXDefinedNames: Eksponerer definerede navne (navngivne områder). Egenskaber:
CountMetoder:DeleteByName,FindByName,IndexOfName - TXLSXImages: Eksponerer indlejrede billeder; egenskaber:
Count; metoder:DeleteAt,DeleteInRange,FindAt,IndexOfCell - TXLSXTables: Eksponerer Excel-tabeller. Egenskaber:
CountMetoder:AddExisting,DeleteByName,FindByName,IndexOfName - TXLSConnections: Eksponerer projektbogens eksterne dataforbindelser via
Workbook.Connections. Egenskaber:Count. Metoder:Add,AddExisting,FindById,FindByName,NextId,Validate - TXLSQueryTables: Eksponerer regnearkets definitioner af forespørgselsresultater via
Worksheet.QueryTables. Egenskaber:Count. Metoder:Add,AddExisting,FindByName,FindByResultTableName,Validate
Understøttede funktioner
- Dokumentegenskaber (
Workbook.Title,Author,Subject,Keywords,Description,LastModifiedBy,Companyosv.) skrevet tildocProps/core.xml+docProps/app.xml - Adgangskodebeskyttelse af regneark / projektmappe (legacy 16-bit hash) via
Worksheet.Protect/Workbook.ProtectWorkbook; Excel-kompatibel AES-adgangskodebeskyttet lagring viaSaveAsEncrypted, som bruger AES-NI-acceleration, når den er tilgængelig, og bærbar softwarefallback ellers —OpenEncryptedudløser stadig en fejl for krypterede pakker, indtil understøttelse af dekryptering lander - VBA-projektbevarelse via
Workbook.LoadVbaProjectFromFile/VbaProject; bytes bevares uændret frem og tilbage. GyldigevbaProject.bin-datamængder kan også inspiceres gennemWorkbook.ParsedVBAProject - Diagrammer — kolonne / søjle / linje / tærte / område / doughnut via TXLSXChart, forankret på et regneark (
Worksheet.AddChart) or fuldside på et dedikeret diagramark viaWorkbook.AddChartSheet(Name, Type, Title) - Rich-text-celler via TXLSXRichText med skriftypeformatering pr. kørsel; rundrejser gennem tabellen med delte strenge
- Interne hyperlink-ankre via
Worksheet.AddHyperlinkToCell(Row, Col, "Sheet2!A1")(ingen rels-relation nødvendig) - Celleområde-kopiering / flytning / rydning-API på regnearket (
CopyRange,CopyRangeTo,MoveRange,ClearRange) - Cellejustering via TXLSXAlignment + per-celle
AlignmentIndex - Fanefarve for regnearket via
Worksheet.TabColor/TabColorIsAuto - Visningstilstand for regnearket via
Worksheet.View, herunder normalvisning, sideskiftsforhåndsvisning og sidelayoutvisning - Streaming SaveAs-sti (
Workbook.StreamingWrite := True), der bygger og skriver hvert regneark uden at holde de andre i hukommelsen; XML-akkumulatoren pr. række brugerTXLSWideStringBuilder, så celleløkken forbliver lineær - Round-trip
Openfor alt ovenstående undtagen krypterede XLSX-pakker og ark-id for diagramark, som falder tilbage til den dokumenterede delvise adfærd - Stream-baseret eksport og import:
SaveAs(Stream),Open(Stream)til brug i hukommelsen eller i BLOB-felter - Læsning/skrivning af OpenDocument Spreadsheet:
Workbook.OpenODSog den generiskeWorkbook.Openkan indlæse.ods-pakker, mensWorkbook.SaveAsODSogSaveAs(..., xlsxOpenDocumentSpreadsheet)skriver ODS-output direkte. Formatområdet dækker værdier, formler, stilarter, rig tekst, række-/kolonnedimensioner, fletninger, hyperlinks, billeder, diagrammer, navngivne områder, AutoFilter, betingede formater, datavalideringer, fryseruder, sideopsætning, sidehoveder/sidefødder, udskriftsområder, sideskift, dispositionsgrupper, fanefarve og arksynlighed på tværs af understøttede ture frem og tilbage - ODS-eksportindstillinger: giv
TODSExportOptionstilSaveAsODSfor at overskrive dokumentgenerator-strengen eller udelade diagram- og billeddele, når du vil have en lettere pakke - Import af afgrænset tekst:
Workbook.OpenCSV(FileName)ogWorkbook.OpenCSV(Stream)importerer CSV- eller TSV-data med separator-sniffing, registrering af BOM-kodning, RFC 4180-kodning og valgfri værditypeinferens;Open(FileName)dirigerer automatisk.csv- og.tsv-filer til importøren - Scanning af projektmappe-metadata:
Workbook.GetSheetNames(FileName, List)ogWorkbook.GetSheetNames(Stream, List)læser sorterede arknavne fraxl/workbook.xmluden at indlæse regnearks-XML - Cellebeskyttelse:
TXLSXCell.LockedogFormulaHidden— styr, hvilke celler der kan redigeres, eller hvis formler er synlige, når arket er beskyttet - Tilpas kolonnebredde og rækkehøjde automatisk efter celleindhold:
Worksheet.AutoFitColumn,AutoFitColumns,AutoFitRow,AutoFitRows - Indsættelse og sletning af rækker/kolonner med fuld kaskade:
InsertRows,DeleteRows,InsertCols,DeleteCols. Bivirkninger forplantes gennem celler, flettede områder, hyperlinks, kommentarer, fastlåste ruder, områdestrengsreferencer, tabeller, celleformler, formler for betinget formatering / datavalidering, interne hyperlinkmål, printeropsætningsreferencer, manuelle sideskift, kolonekriterier for autofilter, diagramserier, definerede navne, billedankre og diagramankre - Udvidet sideopsætning:
PrintArea,PrintTitleRows,PrintTitleCols,PrintGridlines,PrintHeadings,BlackAndWhite,Draft,PrintNotes,PrintOverThenDown - Adgang til uigennemsigtigt printerdriver-payload via
PrinterDriverData,HasPrinterDriverDataogClearPrinterDriverData; byte-arrays og regnearkskopier har uafhængigt ejerskab, payloads er begrænset til 1 MiB, og rydning fjerner regnearkets relation og binære pakkedel uden at erstatte typede sideopsætningsfelter; indlæsning binder kun det præcisepageSetup-relations-id med den krævede relationstype og et eksisterende mål, mens manglende, fejlskrevne eller hængende referencer emittererxlsDiagnosticPrinterSettingsRelationshipInvaliduden at låne en anden binær del - Arbejdsbogens lokale render-kalibrering via
RenderCalibration,CaptureRenderCalibrationogResetRenderCalibrationmed valideret tildeling af hele poster og uafhængige operations-snapshots for bredde, højde, linjeafstand, cellemargener, skærmskalering og målings-DPI - Operations-ejet geometri- og skrifttypemåling via
CreateRenderGeometrymed uforanderlig kalibrering og projektmappe-generations-id, komplette font- og wrap-bevidste cache-nøgler, afgrænset lokal caching og delte konverteringer for pixel, point, kolonnebredde, MDW og brugbar cellebredde - AutoFit fanger ét projektmappe-lokalt geometri-snapshot pr. operation og måler synlige cellers skrifter og ombrudt tekst med kalibreret afstand og margener; pagineringen fanger et separat snapshot pr. build, holder eksisterende logiske sider uændrede indtil næste build og skriver aldrig regnearksdimensioner
- Arksynlighed:
Worksheet.Visibility(xlsxSheetVisible/xlsxSheetHidden/xlsxSheetVeryHidden) ogIsSelected - Manuelle sideskift:
AddRowBreak,AddColBreak, indeksopslag og hjælpere til fjernelse af intervaller - Kriterier for autofilterkolonne:
Worksheet.AddAutoFilterColumnmed enkelt- eller OG/ELLER to-kriterie-filterregler, plusWorksheet.AutoFilterColumns.FindByColIdogDeleteByColIdtil direkte opslag og fjernelse af kriterier (TXLSXAutoFilterColumn) - Projektbogens datobasis:
Workbook.Date1904skifter mellem 1900 (Windows-standard) og 1904 (Mac) datoepoken - Diagonale kanter:
TXLSXBorder.DiagonalUpogDiagonalDownaktiverer de diagonale linjer;Diagonal-kanten bærer typografi og farve - Udvidede skriftypeegenskaber:
TXLSXFont.VertAlign(hævet skrift / sænket skrift),OutlineFont,Shadow,Family,CharSet - Metadata for navngivne områder:
TXLSXDefinedName.HiddenogComment - Regnearksvisningsindstillinger:
Worksheet.Zoom,DisplayGridLines,DisplayZeros,DisplayRightToLeft,StandardWidth,StandardHeight - OOXML legacy indekseret farvepalet:
Workbook.IndexedColor[0..63]medResetIndexedColors - Eksterne projektmappelinks:
Workbook.ExternalLinks/ TXLSXExternalLink — destinations-URL + SheetNames-metadata rundrejse - Eksterne dataforbindelser og forespørgselsresultater:
Workbook.Connections/Worksheet.QueryTables— typet refresh, credentials, kommando, web, tekst, parameter, felt, tabel og bindinger af definerede navne med extension-sikker round-trip - Temafarveunderstøttelse på
TXLSXFont,TXLSXFillogTXLSXBorderEdge: egenskaberneColorTheme/ColorIndex/TintAndShademed prioritetsrækkefølge (tema > indekseret > RGB) - BIFF8-konvertering via fil- og stream-overloadene af
SaveXLSXWorkbookAsXLSmed en deterministisk 56-farvers paletplan, bevaring af indekserede pladser, der allerede bruges af projektbogens typografier, vægtet OKLab-kvantisering, når direkte farver overstiger de tilgængelige pladser, sparsom gennemløbning af indlæste celler og preflight-afvisning af rækker eller kolonner uden for XLS-gitteret; typede udskriftsfelter og uigennemsigtige printerdata konverteres uafhængigt, BIFF8-grænserne tjekkes, før destinationsstreamen skrives, standardfelter har forrang over duplikerede private standarder, og OOXML-only-flagetUsePrinterDefaultssyntetiseres ikke ind i klassisk XLS - CSV-eksport:
Workbook.SaveAsCSV— 4 overloads (FileName eller Stream × aktivt ark / eksplicit SheetIndex + skilletegn), UTF-8 med BOM, RFC 4180-citering - HTML-eksport:
Workbook.SaveAsHTMLogTXLSXRange.SaveAsHTMLskriver HTML5-tabeller for et helt regneark eller kun det valgte rektangel. Overload-metoder for indstillinger acceptererTXLSXHtmlExportOptionsfor fuld dokumentoutput, stilemission, BOM-emission og tabelklassenavngivning - RTF-eksport:
Workbook.SaveAsRTF— 4 overloads, RTF 1.6-tabel med kolonnebredder, pr. celle-skriftformatering og fuld-BMP unicode via signed-16-bit\uN?-escapes
Delt infrastruktur
Begge facader deler et fælles sæt af lavniveau-hjælpeenheder, hvilket betyder, at typografibeskrivelser, hashtabeller, AVL-træer, ZIP- og XML-I/O, RGB-til-HLS-konverteringer og string builders er skrevet én gang og bruges af begge veje. De delte hjælpere omfatter:
lxStyleXf,lxStyleFont,lxStyleColor,lxStyleFill,lxStyleBorder— moderne stilbeskrivelserlxRgb— RGB / HLS-farvekonverteringlxHashTable,lxKeyList,lxAvlTree,lxCols,lxRows— deduplikerende beholdere og AVL-baserede celle-heap-byggestenlxXmlReader,lxXmlWriter,lxZipArchive— OOXML-transportlaglxStrBuilder,lxCacheStream,lxWStream,lxZlibStream— stream- og strengsamlingshjælpere