XLSX Facade pregled (lxHandleX)
lxHandleX je namjenska fasadna jedinica za Excel 2007+ (.xlsx) i OpenDocument proračunska tablica (.ods) tijekovi rada s radnom knjigom. Koegzistira s izvornim lxHandle fasada kako bi naslijeđeni kod nastavio raditi bez ikakvih promjena
lxHandle— primarna fasada za format Excel 97-2003 BIFF (.xls), HTML, RTF, CSV i TSV izvoz. Sav postojeći korisnički kôd nastavlja koristiti ovu jedinicu nepromijenjenomlxHandleX— primarna fasada za Excel 2007+ OOXML format (.xlsx) i ODS tijekove rada čitanja/pisanja. Pruža vlastite vrste radnih knjiga i radnih listova tako da se ponašanje specifično za XLSX ne ugrađuje naknadno u BIFF stazu koda te izlaže ODS uvoz, izvoz i automatsko ODS otkrivanje putemOpen,SourceFormatiTODSExportOptions
Hijerarhija klasa
XLSX fasada izlaže sljedeće klase
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)
Ove klase su neovisne o lxHandle.TXLSWorkBook i
lxHandle.TXLSWorksheet. Aplikacije koje trebaju oba formata mogu
koristiti oba sučelja jedno pored drugog
uses
lxHandle, // XLS / HTML / RTF / CSV workbook (TXLSWorkBook)
lxHandleX; // XLSX workbook (TXLSXWorkbook)
Brzi početak
XLSX sučelje slijedi iste konvencije oblika poziva kao i BIFF
sučelje — SaveAs / Open na radnoj knjizi,
Sheets.Add / Sheets[i] na zbirci
radnog lista, i Cells.Item[Row, Col].Value na kolekciji
ćelija. Primjer u nastavku ispisuje malu radnu knjigu koja koristi svaku
trenutno podržanu značajku
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;
Podržane značajke
- Vrijednosti ćelija: brojevi, logičke vrijednosti, nizovi znakova, datumi, formule
- Tablica zajedničkih nizova (
xl/sharedStrings.xml) s uklanjanjem duplikata na stazi pisanja - Palete stilova na razini radne knjige —
Workbook.Fonts,Fills,BordersiNumberFormats— plus po ćelijiFontIndex/FillIndex/BorderIndex/NumberFormatIndex. SaveAs emitira stvarne///+blokovi; Open ih analizira natrag tako da Name/Size/Bold/Italic/Color, uzorci ispune, rubovi obruba i prilagođeni formati brojeva preživljavaju povratno putovanje - Širine po stupcu putem
Worksheet.ColWidth[Col]i visine po retku putemWorksheet.RowHeight[Row](radni listblok i po-htatributi) - Ugrađeni datum
cellXfna indeksuXlsxXfIndexDate;TDateTimevrijednosti se označavaju automatski - Spojene ćelije (
uključujućiTXLSXRange.Merge(True)za spajanje u stilu Excela preko redaka - Rasponi radnog lista putem
Worksheet.Range,RCRange,UsedRange,EntireRowiEntireColumnVidi TXLSXRange za skupne vrijednosti, formuleSetArrayFormula, indeksi stilova, formati brojeva, obrubi, zastavice zaštite, automatsko prilagođavanje, spajanje, pomak, promjena veličineSortrazvrstavanje po više ključeva,ApplyBuiltinStyleugrađeni stilovi ćelija, pomoćnici za kopiranje/premještanje, pomoćnici za umetanje/brisanje cijelog retka/cijelog stupca i HTML izvoz odabranog raspona - Hiperveze (
) podržano rels vezama po radnom listu za vanjske URL-ove - Komentari ćelije s VML crtežom (
xl/commentsN.xml+xl/drawings/vmlDrawingN.vml) tako da se baloni prikazuju u Excelu - Ugrađene slike (PNG / JPEG / GIF / BMP) putem
Worksheet.Imageszapisano uxl/media/imageN.plus XML crteža po listu i rels veze - Samostalni tekstualni okviri za crtanje putem
Worksheet.AddTextBox, napisano kao oblici crteža na radnom listu s tekstualnim tijelima umjesto komentara ćelija, s izravnim pretraživanjem sidra i pomoćnim alatima za brisanje raspona - Imenovani rasponi na razini radne knjige putem
Workbook.DefinedNames(s opsegom radne knjige ili radnog lista putemSheetIndex) - Izračun formule putem
Workbook.CalculateiWorksheet.Calculate, dijeleći XLS analizator i evaluator formula za formule koje počinju znakom jednakosti, reference ćelija i raspona, referencirane ćelije s formulama, reference između listova, raspone definiranih naziva i podržane tekstualne, datumske, funkcije radnog dana, inženjerske/pretvorbe baza, bitovne, statističke, agregatne i matematičke funkcije; koristiteWorkbook.OnUserFunctioniliWorkbook.OnUserFunctionExza rješavanje prilagođenih ili nepodržanih funkcija - Uvjetno oblikovanje po radnom listu
(
Worksheet.ConditionalFormats) i provjera valjanosti podataka (Worksheet.DataValidations) uključujući padajući izbornikAddListValidation(Range, Items)prečac - Grupe strukture redaka / stupaca (
RowOutlineLevel,ColOutlineLevel), skriveno stanje (RowHidden,ColHidden), i sažeto stanje grupe (RowCollapsed,ColCollapsed) - Zamrznuti prozori putem
Worksheet.FreezePanes(Row, Col) - Postavljanje stranice —amp; šest svojstava margina, veličina papira, usmjerenje,
mjerilo stranice, prilagodi širini / prilagodi visini, plus
HeaderText/FooterTextImenovanxlsxPaper*konstante kao što suxlsxPaperLetter,xlsxPaperA4,xlsxPaperA3ixlsxPaperLegalmože se dodijelitiPaperSize - Automatski filtar (
Worksheet.SetAutoFilter) - Tablice u stilu Excela (TXLSXTable) s informacijama o stilu i tableColumns
Facade sub-collection API-jevi
Klase kolekcije fasada upravljaju uvjetnim formatima, provjerama valjanosti podataka, imenovanim rasponima, slikama i tablicama. Ovdje su ključni članovi svake kolekcije:
- TXLSXConditionalFormats:
Izlaže pravila uvjetnog oblikovanja
Svojstva
CountMetodeAddAboveAverage,AddColorScale2,AddColorScale3,AddDataBar,AddExisting,AddExpression,AddIconSet,AddSimpleRule,AddTextRule,AddTop10,DeleteAt,DeleteInRange,FindAt,IndexOfCell - TXLSXDataValidations:
Izlaže provjere valjanosti podataka
Svojstva
CountMetodeAddExisting,AddList,DeleteAt,DeleteInRange,FindAt,IndexOfCell - TXLSXDefinedNames:
Izlaže definirane nazive (imenovane raspone)
Svojstva
CountMetodeDeleteByName,FindByName,IndexOfName - TXLSXImages:
Izlaže ugrađene slike
Svojstva
CountMetodeDeleteAt,DeleteInRange,FindAt,IndexOfCell - TXLSXTables:
Izlaže Excel tablice
Svojstva
CountMetodeAddExisting,DeleteByName,FindByName,IndexOfName
Podržane značajke
- Svojstva dokumenta (
Workbook.Title,Author,Subject,Keywords,Description,LastModifiedBy,Company, itd.) zapisano udocProps/core.xml+docProps/app.xml - Zaštita lozinkom radnog lista / radne knjige (naslijeđeni 16-bitni hash)
putem
Worksheet.Protect/Workbook.ProtectWorkbook; Excel-kompatibilno AES zaštićeno spremanje lozinkom putemSaveAsEncrypted, koristeći AES-NI ubrzanje kada je dostupno i prijenosno softversko rješenje u suprotnomOpenEncryptedi dalje podiže iznimku za šifrirane pakete dok ne stigne podrška za dešifriranje - Očuvanje VBA projekta putem
Workbook.LoadVbaProjectFromFile/VbaProject; bajtovi se vraćaju nepromijenjeni. ValjanovbaProject.binkorisni tereti se također mogu pregledati putemWorkbook.ParsedVBAProject - Grafikoni — stupčasti / trakasti / linijski / tortni / površinski / prstenasti putem
TXLSXChart, usidreno
na radnom listu (
Worksheet.AddChart) ili cijela stranica na namjenskom grafički list putemWorkbook.AddChartSheet(Name, Type, Title) - Ćelije s bogatim tekstom putem TXLSXRichText s oblikovanjem fonta po prolazu; kruži kroz tablicu dijeljenih nizova
- Interna sidra hiperveza putem
Worksheet.AddHyperlinkToCell(Row, Col, "Sheet2!A1")(nije potrebna rels veza) - API za kopiranje / pomicanje / brisanje raspona ćelija na radnom listu
(
CopyRange,CopyRangeTo,MoveRange,ClearRange) - Poravnanje ćelije putem
TXLSXAlignment +
po ćeliji
AlignmentIndex - Boja kartice radnog lista putem
Worksheet.TabColor/TabColorIsAuto - Način prikaza radnog lista putem
Worksheet.View, uključujući normalan prikaz, pregled prijeloma stranice i prikaz izgleda stranice - Put SaveAs strujanja (
Workbook.StreamingWrite := True) koji gradi i piše svaki radni list bez držanja ostalih u memoriji; XML akumulator po retku koristiTXLSWideStringBuildertako da petlja ćelija ostaje linearna - Povratno putovanje
Openza sve gore navedeno osim šifriranih XLSX paketa i identifikacije lista grafikona, koji se vraćaju na dokumentirano djelomično ponašanje - Uvoz i izvoz na temelju toka
SaveAs(Stream),Open(Stream)za upotrebu u memoriji ili u BLOB poljima - Čitanje/pisanje OpenDocument proračunske tablice
Workbook.OpenODSi generičkiWorkbook.Openmože učitati.odspaketi, dokWorkbook.SaveAsODSiSaveAs(..., xlsxOpenDocumentSpreadsheet)izravno piše ODS izlaz. Raspon formata pokriva vrijednosti, formule, stilove, bogati tekst, dimenzije redaka/stupaca, spajanja, hiperveze, slike, grafikone, imenovane raspone, AutoFilter, uvjetne formate, provjere valjanosti podataka, zamrzavanje prozora, postavljanje stranice, zaglavlja/podnožja, raspone ispisa, prijelome stranica, strukturne grupe, boju kartice i vidljivost lista kroz podržane povratne cikluse - Opcije ODS izvoza: proslijedite
TODSExportOptionsuSaveAsODSza nadjačavanje niza generatora dokumenta ili uklanjanje dijelova grafikona i slika pri izradi lakšeg paketa - Uvoz teksta s razdjelnicima:
Workbook.OpenCSV(FileName)iWorkbook.OpenCSV(Stream)uvozi CSV ili TSV podatke s otkrivanjem separatora, otkrivanjem BOM kodiranja, navodnicima u stilu RFC 4180 i neobaveznim zaključivanjem tipa vrijednostiOpen(FileName)rute.csvi.tsvdatoteke u uvoznik automatski - Skeniranje metapodataka radne knjige:
Workbook.GetSheetNames(FileName, List)iWorkbook.GetSheetNames(Stream, List)čita poredane nazive listova izxl/workbook.xmlbez učitavanja XML-a radnog lista - Zaštita ćelije:
TXLSXCell.LockediFormulaHidden— kontrolira koje se ćelije mogu uređivati ili čije su formule vidljive kada je list zaštićen - Automatsko prilagođavanje širine stupca i visine retka prema sadržaju ćelije
Worksheet.AutoFitColumn,AutoFitColumns,AutoFitRow,AutoFitRows - Umetanje i brisanje redaka / stupaca s potpunom kaskadom
InsertRows,DeleteRows,InsertCols,DeleteCols. Nuspojave se šire kroz ćelije, spojene raspone, hiperveze, komentare, zamrzavanje prozora, reference raspona u obliku niza, tablice, formule ćelija, formule uvjetnog oblikovanja / provjere valjanosti podataka, ciljeve internih hiperveza, reference za postavljanje ispisa, ručne prijelome stranica, kriterije stupaca automatskog filtra, raspone serija grafikona, definirane nazive, sidra slika i sidra grafikona - Prošireno postavljanje stranice:
PrintArea,PrintTitleRows,PrintTitleCols,PrintGridlines,PrintHeadings,BlackAndWhite,Draft,PrintNotes,PrintOverThenDown - Vidljivost lista:
Worksheet.Visibility(xlsxSheetVisible/xlsxSheetHidden/xlsxSheetVeryHidden) iIsSelected - Ručni prijelomi stranice:
AddRowBreak,AddColBreak, traženje indeksa i pomoćnici za uklanjanje raspona - Kriteriji stupca automatskog filtra
Worksheet.AddAutoFilterColumns jednim ili AND/OR pravilima filtra s dva kriterija, plusWorksheet.AutoFilterColumns.FindByColIdiDeleteByColIdza izravno traženje i uklanjanje kriterija (TXLSXAutoFilterColumn) - Baza datuma radne knjige:
Workbook.Date1904prebacuje između 1900 (Windows zadano) i 1904 (Mac) vremenske epohe datuma - Dijagonalni obrubi:
TXLSXBorder.DiagonalUpiDiagonalDownomogućuju dijagonalne linije; theDiagonalrub nosi stil i boju - Proširena svojstva fonta:
TXLSXFont.VertAlign(eksponent / indeks),OutlineFont,Shadow,Family,CharSet - Metapodaci imenovanog raspona:
TXLSXDefinedName.HiddeniComment - Opcije prikaza lista:
Worksheet.Zoom,DisplayGridLines,DisplayZeros,DisplayRightToLeft,StandardWidth,StandardHeight - OOXML naslijeđena paleta indeksiranih boja
Workbook.IndexedColor[0..63]sResetIndexedColors - Vanjske poveznice radne knjige:
Workbook.ExternalLinks/ TXLSXExternalLink — povratno putovanje metapodataka Target URL + SheetNames - Podrška za boje teme na
TXLSXFont,TXLSXFilliTXLSXBorderEdge:ColorTheme/ColorIndex/TintAndShadesvojstva s redoslijedom prvenstva (tema > indeksirano > RGB) - CSV izvoz
Workbook.SaveAsCSV— 4 preopterećenja (FileName ili Stream × active-sheet / eksplicitni SheetIndex + Delimiter), UTF-8 s BOM, RFC 4180 navodnici - HTML izvoz
Workbook.SaveAsHTMLiTXLSXRange.SaveAsHTMLpiše HTML5 tablice za cijeli list radne knjige ili samo za odabrani pravokutnik. Preopterećenja Options prihvaćajuTXLSXHtmlExportOptionsza izlaz punog dokumenta, emisiju stila, emisiju BOM-a i imenovanje klasa tablica - RTF izvoz
Workbook.SaveAsRTF— 4 preopterećenja, RTF 1.6 tablica sa širinama stupaca, oblikovanjem fonta po ćeliji i full-BMP unicode putem signed-16-bit\uN?izbjegava
Zajednička infrastruktura
Obje fasade dijele zajednički skup pomoćnih jedinica niže razine, što znači da su opisivači stilova, tablice raspršivanja, AVL stabla, ZIP i XML I/O, RGB-u-HLS pretvorbe i graditelji nizova napisani jednom i koristi ih bilo koja staza Zajednički pomoćnici uključuju:
lxStyleXf,lxStyleFont,lxStyleColor,lxStyleFill,lxStyleBorder— moderni deskriptori stilalxRgb— pretvorba boja RGB / HLSlxHashTable,lxKeyList,lxAvlTree,lxCols,lxRows— spremnici za dedupliciranje i AVL-podržani gradivni blokovi hrpe ćelijalxXmlReader,lxXmlWriter,lxZipArchive— OOXML transportni slojlxStrBuilder,lxCacheStream,lxWStream,lxZlibStream— pomoćnici za sastavljanje tokova i nizova znakova