XLSX Facade Overview (lxHandleX)
lxHandleX on erityinen julkisivuyksikkö (facade unit) Excel 2007+ (.xlsx) ja OpenDocument Spreadsheet (.ods) -työkirjatyönkuluille. Se toimii rinnakkain alkuperäisen lxHandle-julkisivun kanssa, jotta perinteinen koodi toimii edelleen ilman muutoksia:
lxHandle— ensisijainen julkisivu Excel 97-2003 BIFF -muodolle (.xls) sekä HTML-, RTF-, CSV- ja TSV-vienneille. Kaikki olemassa oleva käyttäjäkoodi käyttää edelleen tätä yksikköä muuttumattomanalxHandleX— ensisijainen julkisivu Excel 2007+ OOXML -muodolle (.xlsx) ja ODS-luku-/kirjoitustyönkuluille. Tarjoaa omat työkirja- ja laskentataulukkotyyppinsä, jotta XLSX-kohtaista käyttäytymistä ei jälkiasenneta BIFF-koodipolkuun, ja paljastaa ODS-tuonnin, -viennin ja automaattisen ODS-tunnistuksen kohteidenOpen,SourceFormatjaTODSExportOptionskautta
Luokkahierarkia
XLSX-julkisivu paljastaa seuraavat luokat:
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)
Nämä luokat ovat riippumattomia kohteista lxHandle.TXLSWorkBook ja lxHandle.TXLSWorksheet. Sovellukset, jotka tarvitsevat molempia muotoja, voivat käyttää molempia julkisivuja rinnakkain:
uses
lxHandle, // XLS / HTML / RTF / CSV workbook (TXLSWorkBook)
lxHandleX; // XLSX workbook (TXLSXWorkbook)
Pikäkäynnistys
XLSX-julkisivu noudattaa samoja kutsumuodon käytäntöjä kuin BIFF-julkisivu — SaveAs / Open työkirjassa, Sheets.Add / Sheets[i] laskentataulukkokokoelmassa ja Cells.Item[Row, Col].Value solukokoelmassa. Alla oleva esimerkki kirjoittaa pienen työkirjan, joka käyttää kaikkia tällä hetkellä tuettuja ominaisuuksia:
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;
Tuetut ominaisuudet
- Soluarvot: numerot, totuusarvot, merkkijonot, päivämäärät, kaavat
- Jaettujen merkkijonojen taulukko (
xl/sharedStrings.xml) kaksoiskappaleiden poistolla kirjoituspolulla - Työkirjatason tyylipaletit —
Workbook.Fonts,Fills,BordersjaNumberFormats— sekä solukohtaisetFontIndex/FillIndex/BorderIndex/NumberFormatIndex. SaveAs tuottaa todelliset lohkot///+; Open jäsentää ne takaisin, joten Name/Size/Bold/Italic/Color, täyttökuviot, reunojen reunat ja mukautetut numeromuodot säilyvät edestakaisessa matkassa - Sarakkohtaiset leveydet kohteen
Worksheet.ColWidth[Col]kautta ja rivikohtaiset korkeudet kohteenWorksheet.RowHeight[Row]kautta (laskentataulukon-lohko ja rivikohtaisetht-määritteet) - Sisäänrakennettu päivämäärä
cellXfindeksissäXlsxXfIndexDate;TDateTime-arvot merkitään automaattisesti - Yhdistetyt solut (
), mukaan lukienTXLSXRange.Merge(True)Excel-tyylistä rivien välistä yhdistämistä varten - Laskentataulukon alueet kohteiden
Worksheet.Range,RCRange,UsedRange,EntireRowjaEntireColumnkautta. Katso TXLSXRange eräarvoja, kaavoja, kohdettaSetArrayFormula, tyylihakemistoja, numeromuotoja, reunoja, suojauslippuja, automaattista sovitusta, yhdistämistä, siirtymää, koon muutosta,Sort-monitavainlajittelua, sisäänrakennettuja solutyylejäApplyBuiltinStyle, kopioinnin/siirron apuohjelmia, kokonaisen rivin/sarakkeen lisäämisen/poistamisen apuohjelmia ja valitun alueen HTML-vientiä varten - Hyperlinkit (
), joita tukevat laskentataulukkokohtaiset suhteet (rels) ulkoisille URL-osoitteille - Solukommentit VML-piirustuksella (
xl/commentsN.xml+xl/drawings/vmlDrawingN.vml), jotta puhekuplat renderöityvät Excelissä - Upotetut kuvat (PNG / JPEG / GIF / BMP) kohteen
Worksheet.Imageskautta, kirjoitettu polkuunxl/media/imageN.sekä taulukkokohtainen piirustus-XML ja suhteet - Erilliset piirustustekstilaatikot kohteen
Worksheet.AddTextBoxkautta, kirjoitettu laskentataulukon piirustusmuotoina tekstirungoilla solukommenttien sijaan, suorilla ankkurihauilla ja alueen poiston apuohjelmilla - Työkirjatason nimetyt alueet kohteen
Workbook.DefinedNameskautta (työkirjalaajuiset tai taulukkolaajuiset kohteenSheetIndexkautta) - Kaavan laskenta kohteiden
Workbook.CalculatejaWorksheet.Calculatekautta, jakaen XLS-kaavanjäsentimen ja -arvioijan alussa olevan yhtäsuuruusmerkin kaavoille, solu- ja alueviitteille, viitatuille kaavasoluille, taulukoiden välisille viitteille, määritetyille nimialueille sekä tuetuille teksti-, päivämäärä-, työpäivä-, insinööri-/kantalukumuunnos-, bittikohtaisille, tilastollisellille, koostamis- ja matematiikkafunktioille; käytä kohdettaWorkbook.OnUserFunctiontaiWorkbook.OnUserFunctionExratkaistaksesi mukautetut tai tukemattomat funktiot - Taulukkokohtainen ehdollinen muotoilu (
Worksheet.ConditionalFormats) ja tietojen oikeellisuustarkistus (Worksheet.DataValidations), mukaan lukien pudotusvalikon pikavalintaAddListValidation(Range, Items) - Rivi- / sarakejäsennysryhmät (
RowOutlineLevel,ColOutlineLevel), piilotettut tila (RowHidden,ColHidden) ja tiivistetty ryhmätila (RowCollapsed,ColCollapsed) - Kiinnitetyt ruudut kohteen
Worksheet.FreezePanes(Row, Col)kautta - Sivunasetus — kuusi reunusominaisuutta, paperikoko, suunta, sivun mittakaava, sovita leveys / sovita korkeus, sekä
HeaderText/FooterText. NimetytxlsxPaper*-vakiot, kutenxlsxPaperLetter,xlsxPaperA4,xlsxPaperA3jaxlsxPaperLegal, voidaan määrittää kohteellePaperSize - Automaattinen suodatus (
Worksheet.SetAutoFilter) - Excel-tyyliset taulukot (TXLSXTable) tyylitiedoilla ja sarakkeilla tableColumns
Julkisivun alikokoelmien API:t
Julkisivun kokoelmaluokat hallitsevat ehdollisia muotoiluja, tietojen oikeellisuustarkistuksia, nimettyjä alueita, kuvia ja taulukoita. Tässä ovat kunkin kokoelman ydinjäsenet:
- TXLSXConditionalFormats: Paljastaa ehdollisen muotoilun säännöt. Ominaisuudet:
CountMetodit:AddAboveAverage,AddColorScale2,AddColorScale3,AddDataBar,AddExisting,AddExpression,AddIconSet,AddSimpleRule,AddTextRule,AddTop10,DeleteAt,DeleteInRange,FindAt,IndexOfCell - TXLSXDataValidations: Paljastaa tietojen oikeellisuustarkistukset. Ominaisuudet:
CountMetodit:AddExisting,AddList,DeleteAt,DeleteInRange,FindAt,IndexOfCell - TXLSXDefinedNames: Paljastaa määritetyt nimet (nimetyt alueet). Ominaisuudet:
CountMetodit:DeleteByName,FindByName,IndexOfName - TXLSXImages: Paljastaa upotetut kuvat. Ominaisuudet:
CountMetodit:DeleteAt,DeleteInRange,FindAt,IndexOfCell - TXLSXTables: Paljastaa Excel-taulukot. Ominaisuudet:
CountMetodit:AddExisting,DeleteByName,FindByName,IndexOfName
Tuetut ominaisuudet
- Dokumentin ominaisuudet (
Workbook.Title,Author,Subject,Keywords,Description,LastModifiedBy,Companyjne.) kirjoitettu polkuihindocProps/core.xml+docProps/app.xml - Laskentataulukon / työkirjan salasanasuojaus (perinteinen 16-bittinen hash) kohteiden
Worksheet.Protect/Workbook.ProtectWorkbookkautta; Excel-yhteensopiva AES-salasanasuojattu tallennus kohteenSaveAsEncryptedkautta, käyttäen AES-NI-kiihdytystä, kun se on saatavilla, ja muuten siirrettävää ohjelmiston vararatkaisua (fallback). KohdeOpenEncryptednostaa edelleen poikkeuksen suojattujen pakettien kohdalla, kunnes purkutuki valmistuu - VBA-projektin säilyttäminen kohteiden
Workbook.LoadVbaProjectFromFile/VbaProjectkautta; tavut säilyvät muuttumattomina edestakaisessa matkassa. KelvollisetvbaProject.bin-hyötykuormat voidaan myös tarkastaa kohteenWorkbook.ParsedVBAProjectkautta - Kaaviot — pylväs / palkki / viiva / piirakka / alue / rengas kohteen TXLSXChart kautta, ankkuroituna laskentataulukkoon (
Worksheet.AddChart) tai koko sivun kokoisena erillisellä kaaviotaulukolla (chart sheet) kohteenWorkbook.AddChartSheet(Name, Type, Title)kautta - Rikkaan tekstin (rich-text) solut kohteen TXLSXRichText kautta osakohtaisella fonttimuotoilulla; kulkee edestakaisin jaetun merkkijonotaulukon kautta
- Sisäiset hyperlinkkiankkurit kohteen
Worksheet.AddHyperlinkToCell(Row, Col, "Sheet2!A1")kautta (suhdeyhteyttä rels ei tarvita) - Solualueen kopiointi- / siirto- / tyhjennys-API laskentataulukossa (
CopyRange,CopyRangeTo,MoveRange,ClearRange) - Solun tasaus kohteen TXLSXAlignment + solukohtaisen
AlignmentIndexkautta - Laskentataulukon välilehden väri kohteiden
Worksheet.TabColor/TabColorIsAutokautta - Laskentataulukon näkymätila kohteen
Worksheet.Viewkautta, mukaan lukien normaali näkymä, sivunjaon esikatselu ja sivun asettelu -näkymä - Virtauttava SaveAs-polku (
Workbook.StreamingWrite := True), joka rakentaa ja kirjoittaa kunkin laskentataulukon pitämättä muita muistissa; rivikohtainen XML-akku (XML accumulator) käyttää kohdettaTXLSWideStringBuilder, joten solusilmukka pysyy lineaarisena - Edestakainen
Openkaikelle yllä mainitulle lukuun ottamatta salattuja XLSX-paketteja ja kaaviotaulukkojen taulukon tunnistusta, jotka käyttävät dokumentoitua osittaista varatoimintoa - Virtapohjainen vienti ja tuonti:
SaveAs(Stream),Open(Stream)muistinsisäiseen tai BLOB-kentän käyttöön - OpenDocument Spreadsheet luku/kirjoitus:
Workbook.OpenODSja yleinenWorkbook.Openvoivat ladata.ods-paketteja, kun taasWorkbook.SaveAsODSjaSaveAs(..., xlsxOpenDocumentSpreadsheet)kirjoittavat ODS-tulosteen suoraan. Muotoalue kattaa arvot, kaavat, tyylit, rikkaat tekstit, rivi-/sarakemitat, yhdistämiset, hyperlinkit, kuvat, kaaviot, nimetyt alueet, AutoFilterin, ehdolliset muotoilut, tietojen oikeellisuustarkistukset, kiinnitetyt ruudut, sivunasetukset, ylä-/alatunnisteet, tulostusalueet, sivunjaot, jäsennysryhmät, välilehden värin ja taulukon näkyvyyden tuetuissa edestakaisissa matkoissa - ODS-vointiasetukset: välitä kohde
TODSExportOptionskohteelleSaveAsODSylikirjoittaaksesi dokumentin luontiohjelman merkkijonon tai estääksesi kaavio- ja kuvaosat kevyempää pakettia tuotettaessa - Erotinmerkkitekstin tuonti:
Workbook.OpenCSV(FileName)jaWorkbook.OpenCSV(Stream)tuovat CSV- tai TSV-tietoja erottimen haistamisella, BOM-koodauksen tunnistuksella, RFC 4180 -tyylisellä lainauksella ja valinnaisella arvotyypin päättelyllä. KohdeOpen(FileName)reitittää.csv- ja.tsv-tiedostot maahantuojalle automaattisesti - Työkirjan metatietojen skannaus:
Workbook.GetSheetNames(FileName, List)jaWorkbook.GetSheetNames(Stream, List)lukevat järjestetyt taulukoiden nimet tiedostostaxl/workbook.xmllataamatta laskentataulukon XML-tietoja - Solun suojaus:
TXLSXCell.LockedjaFormulaHidden— hallitsevat sitä, mitkä solut ovat muokattavissa tai minkä solujen kaavat ovat näkyvissä, kun taulukko on suojattu - Sarakkeen leveyden ja rivin korkeuden automaattinen sovitus solun sisällöstä:
Worksheet.AutoFitColumn,AutoFitColumns,AutoFitRow,AutoFitRows - Rivin / sarakkeen lisäys ja poisto täydellä kerrannaisvaikutuksella:
InsertRows,DeleteRows,InsertCols,DeleteCols. Sivuvaikutukset leviävät solujen, yhdistettyjen alueiden, hyperlinkkien, kommenttien, kiinnityslaatikoiden, aluemerkkijonoviitteiden, taulukoiden, solukaavojen, ehdollisen muotoilun / tietojen oikeellisuustarkistuksen kaavojen, sisäisten hyperlinkkien kohteiden, tulostusasetusten viitteiden, manuaalisten sivunjakojen, automaattisen suodatuksen sarakkeen ehtojen, kaaviosarjojen alueiden, määritettyjen nimien, kuva-ankkureiden ja kaavioankkureiden läpi - Laajennetut sivunasetukset:
PrintArea,PrintTitleRows,PrintTitleCols,PrintGridlines,PrintHeadings,BlackAndWhite,Draft,PrintNotes,PrintOverThenDown - Taulukon näkyvyys:
Worksheet.Visibility(xlsxSheetVisible/xlsxSheetHidden/xlsxSheetVeryHidden) jaIsSelected - Manuaaliset sivunjaot:
AddRowBreak,AddColBreak, indeksin haku- ja alueenpoiston apuohjelmat - Automaattisen suodatuksen sarakkeen ehdot:
Worksheet.AddAutoFilterColumnyksittäisillä tai AND/OR kaksiehtoisilla suodatinsäännöillä, sekäWorksheet.AutoFilterColumns.FindByColIdjaDeleteByColIdsuoraa ehtojen hakua ja poistamista varten (TXLSXAutoFilterColumn) - Työkirjan päivämäärän perusta:
Workbook.Date1904vaihtaa vuosilukujen 1900 (Windowsin oletus) ja 1904 (Mac) epookkien välillä - Diagonaaliset reunat:
TXLSXBorder.DiagonalUpjaDiagonalDownottavat diagonaaliset viivat käyttöön;Diagonal-reuna kantaa tyylin ja värin - Laajennetut fontin ominaisuudet:
TXLSXFont.VertAlign(yläindeksi / alaindeksi),OutlineFont,Shadow,Family,CharSet - Nimetyn alueen metatiedot:
TXLSXDefinedName.HiddenjaComment - Taulukkonäkymän asetukset:
Worksheet.Zoom,DisplayGridLines,DisplayZeros,DisplayRightToLeft,StandardWidth,StandardHeight - OOXML perinteinen indeksoitujen värien paletti:
Workbook.IndexedColor[0..63]sekäResetIndexedColors - Työkirjan ulkoiset linkit:
Workbook.ExternalLinks/ TXLSXExternalLink — kohde-URL-osoitteen + SheetNames-metatietojen edestakainen matka - Teemavärituki kohteissa
TXLSXFont,TXLSXFilljaTXLSXBorderEdge:ColorTheme/ColorIndex/TintAndShade-ominaisuudet prioriteettijärjestyksellä (teema > indeksoitu > RGB) - CSV-vienti:
Workbook.SaveAsCSV— 4 ylikuormitusta (FileName tai Stream × aktiivinen taulukko / nimenomainen SheetIndex + Delimiter), UTF-8 BOM:n kanssa, RFC 4180 -lainaus - HTML-vienti:
Workbook.SaveAsHTMLjaTXLSXRange.SaveAsHTMLkirjoittavat HTML5-taulukoita koko työkirjan taulukolle tai vain valitulle suorakulmiolle. Asetusten ylikuormitukset hyväksyvät kohteenTXLSXHtmlExportOptionskoko asiakirjan tulostusta, tyylien tuottamista, BOM-tuottamista ja taulukkoluokan nimeämistä varten - RTF-vienti:
Workbook.SaveAsRTF— 4 ylikuormitusta, RTF 1.6 -taulukko sarakkeiden leveyksillä, solukohtaisella fonttimuotoilulla ja koko BMP-alueen unicodella signed-16-bit\uN?-ohjausmerkkien kautta
Luokkahierarkia
Molemmat julkisivut jakavat yhteisen joukon alemman tason apuyksiköitä, mikä tarkoittaa, että tyylien kuvaukset, hash-taulukot, AVL-puut, ZIP- ja XML-I/O-toiminnot, RGB-HLS-muunnokset ja merkkijonojen rakentajat kirjoitetaan kerran ja niitä käytetään kummallakin polulla. Yhteiset apuohjelmat sisältävät:
lxStyleXf,lxStyleFont,lxStyleColor,lxStyleFill,lxStyleBorder— nykyaikaiset tyylikuvauksetlxRgb— RGB- / HLS-värikäännöslxHashTable,lxKeyList,lxAvlTree,lxCols,lxRows— kaksoiskappaleita poistavat säiliöt ja AVL-pohjaiset solukekorakennuspalikatlxXmlReader,lxXmlWriter,lxZipArchive— OOXML-kuljetuskerroslxStrBuilder,lxCacheStream,lxWStream,lxZlibStream— virta- ja merkkijonokokoonpanoapulaiset