HotXLS-documentatie

Cells en Ranges

Een veelvoorkomende taak bij het gebruik van HotXLS is het opgeven van een cel of een bereik met cellen en er daarna iets mee doen, zoals een waarde invoeren of de opmaak wijzigen
Een Range-object in HotXLS is ofwel een enkele cel of een bereik met cellen. De volgende onderwerpen laten de meest gebruikelijke manieren zien om Range-objecten te identificeren en ermee te werken
 
»Cell en Range A1 notation
»Cell Index numbers
»Range Index numbers
»Referring to Rows
»Referring to Columns
»Range Offset

Begrensde inspectie van opgeslagen classic-grafiekcellen

TXLSWorksheet.ReadCachedChartCell(Row, Col, MaxBytes, MaxTextCharacters) leest nulgebaseerde classic XLS-coördinaten zonder cellen aan te maken, formules te berekenen, gecompileerde formules te klonen, de shared-string-cache op te warmen of de werkmapgeneratie te wijzigen

De teruggegeven TXLSCachedChartCell heeft Kind: TXLSCachedChartCellKind, Number: Double, Text: WideString, ReadBytes: Int64, TextCharacters: Int64, Generation: UInt64 en CacheState: TXLSFormulaCacheState; ccckAbsent vertegenwoordigt ontbrekende of lege inhoud en samengevoegde niet-ankercellen, ccckNumber vertegenwoordigt een eindig numeriek resultaat, en ccckText bevat een losse getelde UTF-16-string

Formulecellen vereisen een opgeslagen xlfcsLoaded- of xlfcsCalculated-cache; ontbrekende of ongeldig gemaakte caches geven EInvalidOperation in plaats van hun formules te evalueren, terwijl opgeslagen lege of null-caches ccckAbsent teruggeven

Shared-string-lengte en de lengte van gecachte varUString- of varOleStr-waarden worden gecontroleerd vóór het kopiëren, waarbij ingebedde NUL-tekens en surrogate-code-eenheden behouden blijven; arrays, by-reference-variants, fouten, Booleans, ANSI-varString-caches en onbekende cachetypen zijn expliciet niet ondersteund

Een tekstresultaat van n UTF-16-code-eenheden boekt ReadBytes = 4*n en TextCharacters = 2*n voor de getelde bron en de losse uitvoer; een getal boekt acht bytes en geen teksttekens, en afwezigheid boekt geen van beide

De methode wijst negatieve limieten af met EArgumentOutOfRangeException, coördinaten buiten rijen 0 tot en met 65535 of kolommen 0 tot en met 255 met ERangeError, en overschreden limieten of niet-eindige waarden met EInvalidOperation; aanroepers moeten bovendien elke numerieke formattering of gekopieerde categorietekst die uit de teruggegeven waarde voortkomt in hun budget opnemen

Opgeslagen kalenderdatums en getypeerde varDate-formulecaches volgen de huidige instelling Date1904 van de werkmap, terwijl gewone numerieke doubles hun exacte opgeslagen waarde behouden; een opgeslagen kalenderdatum in het fictieve 1900-interval [60, 61) wordt geweigerd in plaats van als echte datum behandeld

TXLSWorksheet.IsCachedChartCellVisible(Row, Col) gebruikt dezelfde nulgebaseerde coördinaatgrenzen en leest opgeslagen verborgen-vlaggen van rijen en kolommen zonder materialisatie; een grafiek-capture die alleen zichtbare plotting vereist, moet dit resultaat controleren en het gedocumenteerde beleid voor verborgen data toepassen

Beide methoden verwerven een geneste leeslease van de werkmap; een grafiekbron met meerdere cellen moet een buitenlease vasthouden, de teruggegeven Generation verifiëren, formuleverwijzingen herleiden tegen de exacte geleende werkmap en het lokale werkblad zonder externe of overspannende verwijzingen, en referentiegrenzen en formuleproveniëntie valideren voordat deze waarden worden gebruikt

XLSX in-cell-afbeeldingen en checkboxen

TXLSXCell.SetInCellImage(Data, ContentType, AltText, Decorative) slaat een lokale PNG of JPEG op als celinhoud, met gekopieerde gecodeerde bytes en een rich-value-metadatagraf in het XLSX-pakket

De setter valideert PNG-chunkgrenzen, checksums en zijn eindmarkering, of JPEG-frame- en containermarkeringen voordat de cel wordt gewijzigd; rasterdecoding blijft de verantwoordelijkheid van de renderer

ContentType is image/png of image/jpeg, Decorative staat standaard op False, en AltText wordt bewaard als afbeeldingsmetadata

SetInCellImage vervangt de formule, de gecachte inhoud en rich text, wijst array-formulecellen af en gebruikt #VALUE! als gewone fallback-celwaarde; de bibliotheek berekent de functie IMAGE niet en downloadt geen externe afbeeldingen

InCellImage geeft een losse TXLSInCellImageSnapshot terug met Availability: TXLSCellFeatureAvailability, Data, ContentType, AltText, Decorative en CalcOrigin; xlcfaAbsent betekent geen afbeeldingsmetadata, xlcfaSupported betekent een herleide lokale PNG of JPEG, en xlcfaUnsupported betekent dat de bestaande metadata niet veilig kan worden geïnterpreteerd

ClearInCellImage verwijdert de afbeelding en wist zijn fallbackwaarde; het toewijzen van een andere waarde of formule verwijdert de afbeelding als onderdeel van het vervangen van de celinhoud

TXLSXCell.SetCheckbox(DefaultState: TXLSCheckboxDefaultState) maakt een cel-control-formaat aan en initialiseert de waarde, met xlcdUnchecked, xlcdChecked of xlcdBlank; de standaard is xlcdUnchecked

CellControl geeft TXLSCellControlSnapshot terug met Kind: TXLSCellControlKind, DefaultState en de onderliggende Value; soorten zijn xlcctNone, xlcctUnknown en xlcctCheckbox

Het Checkbox-formaat hoort bij de opmaak, dus toewijzingen van waarde of formule behouden het en Range.Clear wist inhoud terwijl het formaat behouden blijft; ClearCellControl verwijdert dat formaat terwijl de waarde behouden blijft, en Range.ClearAll verwijdert beide

TXLSXWorksheet.ReadInCellImage(Row, Col, MaxBytes) en TXLSXWorksheet.ReadCellControl(Row, Col) lezen 1-based coördinaten onder een leeslease zonder ontbrekende cellen aan te maken of formules te herberekenen; MaxBytes staat standaard op High(Int64) en wijst een te grote afbeelding af vóór het kopiëren van zijn bytes

Expliciete stijlen op celniveau, lokale afbeeldingsmetadata, standaard Checkbox-status en Booleans overleven XLSX-opslaan en herladen, bereikkopieën en -verplaatsingen, structurele rij- of kolombewerkingen en herstel van inhoudssnapshots binnen dezelfde werkmap; ondersteunde kopieën tussen werkmappen herbouwen doelverwijzingen

Onbekende control-bags, rich-value-typen en misvormde verwijzingen blijven expliciet niet-ondersteund; gewone Open XML-saves behouden hun bronmetadata wanneer PreserveUnsupportedParts is ingeschakeld, terwijl het kopiëren van onbekende cel-feature-metadata naar een andere werkmap wordt geweigerd voordat de bestemming verandert

Het toevoegen van een ondersteunde feature aan een geïmporteerde property bag of afbeeldingsgraf met een niet-ondersteunde namespace of conflicterende eigenaarsrelaties wordt bij het opslaan geweigerd in plaats van die graf te herbouwen uit geraden metadata

Sparse overgeërfde Checkbox-formaten

TXLSXWorksheet.SetRowCheckboxFormat(FirstRow, LastRow, DefaultState) en SetColumnCheckboxFormat(FirstCol, LastCol, DefaultState) passen een inclusieve 1-based as-span toe zonder cellen te maken of waarden te initialiseren; DefaultState staat standaard op xlcdUnchecked

ClearRowCellControlFormat(FirstRow, LastRow) en ClearColumnCellControlFormat(FirstCol, LastCol) wissen expliciet het bijbehorende overgeërfde formaat terwijl waarden behouden blijven; ongeldige spans geven EArgumentOutOfRangeException vóór mutatie

Directe cel-controls en directe wissingen hebben voorrang op overgeërfde formaten, eindige gekopieerde formaatgebieden hebben voorrang op rijen, en rijen hebben voorrang op kolommen ongeacht de toewijzingsvolgorde; de laatste toewijzing op hetzelfde niveau wint

Een geïmporteerd celelement heeft een directe standaard XF wanneer het attribuut s ontbreekt, waarbij de lege wismaskers die Excel schrijft zonder expliciete nul-index behouden blijven; ontbrekende celelementen erven nog steeds het asformaat

Een afwezige cel behoudt Value = Unassigned, ook wanneer zijn overgeërfde Checkbox-standaard aangevinkt is; de standaard is invoer-metadata en fabriceert geen Booleaanse waarde tijdens lezen of renderen

Toewijzing van FormatIndex vervangt het directe control-formaat, inclusief een expliciete nul-toewijzing die overgeërfde controls maskeert; gedeeltelijke wijzigingen aan lettertype, vulling, rand, getal, uitlijning of bescherming behouden het control-formaat

Overgeërfde formaten overleven structurele bewerkingen, ondersteunde bereik- en bladkopieën en XLSX-roundtrips; een kopie tussen werkmappen mapt bekende property bags opnieuw en wijst onbekende overgeërfde control-metadata af voordat de bestemming verandert

Opslaan en semantische normalisatie controleren de sparse grenscomplexiteit voordat die wordt doorlopen, met limieten van 1.000.000 partities en 16.000.000 geschatte overlay-resolutiecontroles; een excessief gefragmenteerde control-graf geeft EXLSXSemanticBudget in plaats van een onbegrensde Cartesiaanse wandeling te starten

TXLSXRange.ApplyFormatPatch accepteert xfpCellControl om het effectieve Checkbox-formaat te kopiëren of te wissen zonder waarden te wijzigen, vervangt bestaande directe control-formaten en wijst onbekende controls af vóór bestandsmutatie

TXLSXCellStyleState.CellControlSlot is de overlay-representatie: nul is een expliciete wissing, 1 tot en met 3 identificeren Checkbox-standaarden voor niet-aangevinkt, aangevinkt en leeg, en negatieve slots verwijzen naar geïmporteerde feature-XF's; geïmporteerde slotnummers horen bij hun werkmap en moeten opnieuw worden gemapt bij kopiëren tussen werkmappen

Read-only control-snapshots en semantische vergelijking gebruiken het effectieve sparse formaat zonder ontbrekende cellen te materialiseren; inhoudssnapshots bewaren directe controlmaskers, en CellImageCount telt opgeslagen ondersteunde of niet-ondersteunde in-cell-afbeeldingsdragers zonder afbeeldingsbytes te kopiëren

Draagbare capture tekent Booleaanse Checkbox-waarden en wijst lege of niet-Booleaanse Checkbox-uitstraling expliciet af; het gevraagde rasterquotum wordt gecontroleerd voordat een grote overgeërfde span wordt doorlopen

Deze API's zijn beschikbaar op cellen van TXLSXWorkbook; de classic XLS-engine biedt geen moderne cel-control- of rich-value-afbeeldingscreatie

GetConversionReport rapporteert verliezen van in-cell-afbeeldingen en cel-controls voor OpenDocument- en XLSB-uitvoer, die fallbackwaarden behouden terwijl de moderne feature-metadata weglaat; gebruik checked saving om die verliezen te beoordelen of te weigeren

De pakketgraf volgt de specificatie voor lokale rich-value-afbeeldingen van Microsoft en de specificatie voor de Checkbox-feature-property bag; beschikbaarheid in een bepaalde Excel-build bewijst geen ondersteuning in deze bibliotheek, en bibliotheek-roundtrips bewijzen geen native rendering-equivalentie in een Excel-build zonder deze features

De compatibiliteitsprobe op Excel 16.0 build 20430 opende en sloeg het gegenereerde Checkbox-pakket op, maar bood geen bruikbare Checkbox- of lokale in-cell-afbeeldingsauthoring-API; het opende het afbeeldingspakket met de vereiste rich-value-metadatavlaggen en verving zijn niet-ondersteunde lokale afbeelding door #FIELD! bij heropslaan