Microsoft Excel aanroepen vanuit de Delphi-omgeving. Toegang tot Excel vanuit Delphi

Deze recensie bespreekt de basisconstructies waarmee u vanuit DELPHI toegang krijgt tot een Excel-werkmap.

Organisatie van toegang tot het EXCEL-werkboek

Om te communiceren met MS Excel in het programma, moet u de ComObj-module gebruiken
gebruikt ComObj;
en declareer een variabele voor toegang tot MS Excel van het volgende type:
var Excel: variant;

Het initialiseren van een Excel-variabele kan in het eenvoudigste geval als volgt worden gedaan:
Excel:= CreateOleObject("Excel.Toepassing");

Een nieuw boek maken:
Excel.Werkmappen.Toevoegen;

Een bestaand boek openen (pad is het pad naar het bestand met de extensie xls.):
Excel.Werkmappen.Openen;

Een bestaande alleen-lezen werkmap openen:
Excel.Werkmappen.Openen;

Excel afsluiten:
Excel.ActiveWorkbook.Sluiten;
Excel.Toepassing.Afsluiten;

Het blokkeren van verzoeken (bevestigingen, notificaties) van Excel verbiedt bijvoorbeeld een verzoek om een ​​bestand op te slaan:
Excel.DisplayAlerts:=False;

We tonen Excel op het scherm:
Excel.Zichtbaar:= Waar;
of verbergen:
Excel.Zichtbaar:= Onwaar;

De inhoud van het actieve Excel-blad afdrukken:
Excel.ActiveSheet.PrintOut;

Gegevens lezen/schrijven in EXCEL

Een cel in de huidige Excel-werkmap is als volgt toegankelijk:
Excel.Range["B2"]:="Hallo!";- om een ​​waarde naar een cel te schrijven, of
s:=Excel.Bereik["B2"]; - voor lezen,
waarbij B2 het celadres is.

Of gebruik de linkstijl R1K1:
Excel.Range]:="Hallo!";, waar is de celcoördinaat.

Over het algemeen kan aan een Excel-cel elke waarde worden toegewezen (teken, geheel getal, breuk, datum), terwijl Excel de standaardopmaak in de cel instelt.

Celformaat in EXCEL

U kunt als volgt een groep cellen selecteren (selecteren) voor verder werk:
Excel.Bereik, Excel.Cellen].Selecteer;
of
Excel.Bereik["A1:C5"].Selecteer;
dit selecteert het gebied tussen cel A1 en C5.

Nadat de selectie is voltooid, kunt u het volgende installeren:
1) cellen samenvoegen
Excel.Selection.MergeCells:=Waar;
2) woordomslag
Excel.Selection.WrapText:=Waar;
3) horizontale uitlijning
Excel.Selectie.HorizontaleUitlijning:=3;
bij het toewijzen van een waarde van 1 wordt de standaarduitlijning gebruikt, met 2 - links uitlijnen, 3 - midden, 4 - rechts.
4) verticale uitlijning
Excel.Selectie.VerticalAlignment:=1;
de toegewezen waarden zijn vergelijkbaar met horizontale uitlijning.
5) rand voor cellen

Indien ingesteld op 1, worden celranden getekend als dunne, ononderbroken lijnen.
Daarnaast kunt u voor de eigenschap Borders waarden opgeven, bijvoorbeeld gelijk aan 3. Dan wordt alleen de bovenrand voor het selectieblok gezet:
Excel.Selection.Borders.LineStyle:=1;
De waarde van de eigenschap Borders specificeert een andere combinatie van celvlakken.
In beide gevallen kunnen waarden tussen 1 en 10 worden gebruikt.

Wachtwoorden gebruiken in EXCEL

Het instellen van een wachtwoord voor een actieve werkmap kan als volgt worden gedaan:
proberen
// poging om een ​​wachtwoord in te stellen
Excel.ActiveWorkbook.protect("geslaagd");
behalve
// acties bij mislukte poging om een ​​wachtwoord in te stellen
einde;

waarbij pas het wachtwoord is dat moet worden ingesteld voor het boek.

Het verwijderen van een wachtwoord uit een boek is vergelijkbaar, we gebruiken de opdracht
Excel.ActiveWorkbook.Unprotect("pass");

Het instellen en verwijderen van een wachtwoord voor het actieve blad van een Excel-werkmap wordt uitgevoerd door de opdrachten
Excel.ActiveSheet.protect("pass"); // stel een wachtwoord in
Excel.ActiveSheet.Unprotect("pass"); // wachtwoord verwijderen

waarbij pass het wachtwoord is dat is ingesteld om de werkmap te beschermen.

Hulpbewerkingen in EXCEL

Rijen verwijderen met een shift omhoog:
Excel.Rijen["5:15"].Selecteren;
Excel.Selectie.Verwijderen;

bij het uitvoeren van deze acties worden de regels 5 tot en met 15 verwijderd.

Een Freeze Pane instellen op het actieve Excel-blad
// maak het gebied los als het was ingesteld
Excel.ActiveWindow.FreezePanes:=False;
// selecteer de gewenste cel, in dit geval D3
Excel.Bereik["D3"].Selecteer;
// stel het vastzetten van gebieden in
Excel.ActiveWindow.FreezePanes:=Waar;

Succesvol werken!

In dit artikel bekijken we de basisconstructies waarmee u vanuit Delphi toegang krijgt tot een MS Excel-werkmap.

Organisatie van toegang tot het EXCEL-werkboek

Om met MS Excel in het programma te communiceren, moet u de ComObj-module gebruiken

GebruiktComObj;

en declareer een variabele voor toegang tot MS Excel van het volgende type:

Var MsExcel: Variant;

Het initialiseren van een Excel-variabele kan in het eenvoudigste geval als volgt worden gedaan:

MsExcel:= CreateOleObject("Excel.Toepassing");

Een nieuw boek maken:

MsExcel.Werkmappen.Toevoegen;

Een bestaand boek openen (pad is het pad naar het bestand met de extensie xls.):

MsExcel.Werkmappen.Openen;

Een bestaande alleen-lezen werkmap openen:

MsExcel.Werkmappen.Openen;

Excel afsluiten:

MsExcel.ActiveWorkbook.Sluiten; MsExcel.Toepassing.Afsluiten;

Verzoeken blokkeren (bevestigingen, notificaties) MS Excel verbiedt bijvoorbeeld het verzoek om het bestand op te slaan:

MsExcel.DisplayAlerts:=False;

We tonen Excel op het scherm:

MsExcel.Visible:= Waar;

of verbergen:

MsExcel.Visible:= Onwaar;

De inhoud van het actieve MS Excel-blad afdrukken:

MsExcel.ActiveSheet.PrintOut;

Gegevens lezen/schrijven in EXCEL

Een cel in de huidige Excel-werkmap is als volgt toegankelijk:

Een waarde naar een cel schrijven:

MsExcel.Range["B2"]:="Hallo!";

Een waarde uit een cel lezen:

S:=MsExcel.Bereik["B2"];

waar B2- mobiel adres.

Of gebruik de linkstijl R1K1:

MsExcel.Range]:="Hallo!";

waar - celcoördinaat.

Over het algemeen kan aan een Excel-cel elke waarde worden toegewezen (teken, geheel getal, breuk, datum), terwijl MS Excel de standaardopmaak in de cel instelt.

Celformaat in EXCEL

U kunt als volgt een groep cellen selecteren (selecteren) voor verder werk:

MsExcel.Bereik, MsExcel.Cells].Selecteer; // of MsExcel.Range["A1:C5"].Selecteer;

dit selecteert het gebied tussen cel A1 en C5.

Nadat u een selectie hebt gemaakt, kunt u het samenvoegen van cellen, tekstomloop en horizontale en verticale uitlijning instellen:

// cellen samenvoegen MsExcel.Selection.MergeCells:=True; // tekstterugloop MsExcel.Selection.WrapText:=True; // horizontale uitlijning MsExcel.Selection.HorizontalAlignment:=3; // verticale uitlijning MsExcel.Selection.VerticalAlignment:=1;

De volgende waarden worden gebruikt voor verticale en horizontale uitlijning:

1 - standaarduitlijning wordt gebruikt
2 - links uitlijnen
3 - in het midden
4 - juist.

cel grens

Indien ingesteld op 1, worden celranden getekend als dunne, ononderbroken lijnen.

Daarnaast kunt u voor de eigenschap Borders waarden opgeven, bijvoorbeeld gelijk aan 3. Dan wordt alleen de bovenrand voor het selectieblok gezet:

MsExcel.Selectie.Borders.LineStyle:=1;

De waarde van de eigenschap Borders specificeert een andere combinatie van celvlakken. In beide gevallen kunnen waarden tussen 1 en 10 worden gebruikt.

Wachtwoorden gebruiken in EXCEL

Het instellen van een wachtwoord voor een actieve werkmap kan als volgt worden gedaan:

Probeer // probeer een wachtwoord in te stellen MsExcel.ActiveWorkbook.protect("pass"); exception // wat te doen als een poging om een ​​wachtwoord in te stellen mislukt;

waar doorgang- wachtwoord instellen voor het boek.

Het verwijderen van een wachtwoord uit een boek is vergelijkbaar, we gebruiken de opdracht

MsExcel.ActiveWorkbook.Unprotect("pass");

waar doorgang

Het instellen en verwijderen van een wachtwoord voor het actieve blad van een Excel-werkmap wordt uitgevoerd door de opdrachten

MsExcel.ActiveSheet.protect("pass"); // wachtwoord instellen MsExcel.ActiveSheet.Unprotect("pass"); // wachtwoord verwijderen

waar doorgang- het wachtwoord dat is ingesteld om het boek te beschermen.

Hulpbewerkingen in EXCEL

Rijen verwijderen met een shift omhoog:

MsExcel.Rijen["5:15"].Selecteren; MsExcel.Selectie.;

bij het uitvoeren van deze acties worden de regels 5 tot en met 15 verwijderd.

Een Freeze Pane instellen op het actieve Excel-blad

// deblokkeer het paneel als het was ingesteld MsExcel.ActiveWindow.FreezePanes:=False; // selecteer de gewenste cel, in dit geval D3 MsExcel.Range["D3"].Select; // zet paneel bevriezen MsExcel.ActiveWindow.FreezePanes:=True;

De actieve Excel-werkmap opslaan

We hebben in sectie beoordeeld. 6.4.2 basisbewerkingen met betrekking tot boeken. Laten we nu verder gaan met bewerkingen met de bladen van het boek. De werkbladverzameling bevindt zich in de eigenschap Werkbladen van het werkmapobject. Deze collectie is qua eigenschappen vergelijkbaar met de eerder besproken Workbooks-collectie. Een blad is toegankelijk via index of naam. Bijvoorbeeld, de volgende instructies, wanneer u met COM-servers werkt, openen en activeren het eerste blad van de werkmap die wordt weergegeven door het object Excel-werkmap 1, geven een aanwijzer naar dit blad door aan de Excel-werkblad 1-variabele en activeren het blad, d.w.z. breng het naar voren in het Excel-venster:

ExcelWorksheetl:= ExcelWorkbookl.Worksheets als ExcelWorksheet; ExcelWorksheetl.Activeren(LOCALE_USER_DEFAULT);

ExcelWorksheetl:= ExcelWorkbookl.Worksheets; ExcelWerkblad.Activeren;

De eigenschap Werkbladen is ook aanwezig op het serverobject. Deze eigenschap is van toepassing op de actieve werkmap. Dus de volgende instructies, wanneer u met COM-servers werkt, werken op de actieve werkmap, waarbij het blad erin wordt geopend en geactiveerd, waarvan de naam (bijvoorbeeld "Sheet1") wordt gegeven in het Editl-venster:

Werkbladen als ExcelWerkblad; ExcelWorksheetl.Activeren (LOCALE GEBRUIKERSSTANDAARD);

Wanneer u met OLE-automatiseringsservers werkt, zien soortgelijke instructies er als volgt uit:

ExcelWorksheetl:= ExcelApplicationl.Worksheets; ExcelWerkblad.Activeren;

Als het blad met de opgegeven naam niet in de werkmap staat, wordt er een uitzondering gegenereerd. Dus als er zo'n gevaar is, moet deze uitzondering bijvoorbeeld als volgt worden opgevangen:

ExcelWerkbladl:= ExcelApplicatiel.

Werkbladen als ExcelWerkblad; ExcelWorksheetl.Activeren(LOCALE_USER_DEFAULT); behalve

ShowMessage("We konden blad niet openen "" + Editl.Text + """); einde;

U kunt een nieuw blad aan een werkmap toevoegen met behulp van de methode Toevoegen van het object Werkbladen:

Functie Toevoegen(Vóór: OleVariant; Na: OleVariant; Count: OleVariant; Type_: OleVariant; lcid: Integer): IDispatch;

De parameters Voor of Na zijn het werkbladobject voordat of waarna het plakken wordt gemaakt. Het is meestal voldoende om slechts één van deze parameters in te stellen en de andere in te stellen op EmptyParam. Als beide parameters gelijk zijn aan EmptyParam, worden nieuwe bladen ingevoegd vóór het momenteel actieve blad. De Count-parameter specificeert het aantal in te voegen bladen. Als deze parameter gelijk is aan EmptyParam, wordt één vel ingevoegd. De parameter Type__ bepaalt het type invoeging. Indien ingesteld op EmptyParam , wordt een nieuw leeg blad ingevoegd.

De volgende code voegt bijvoorbeeld bij het werken met COM-servers een nieuw blad in vóór het actieve werkblad in de actieve werkmap en geeft een aanwijzer ernaar door in de ExcelWorksheetl-variabele:

EmptyParam, EmptyParam, EmptyParam, EmptyParam, LOCALE_USER_DEFAULT) als ExcelWorksheet;

En de volgende code voegt twee nieuwe bladen in na het derde blad van de actieve werkmap:

VarAfter, Num: OleVariant; Na:= ExcelApplicatie.Werkbladen; Aantal:= 2;

ExcelWorksheetl:= ExcelApplicationl.Worksheets.Add(

EmptyParam, After, Num, EmptyParam, LOCALE_USER_DEFAULT) als Excel-werkblad;

Wanneer u met OLE-automatiseringsservers werkt, zien soortgelijke instructies er als volgt uit:

ExcelWorksheetl:= ExcelApplicationl.Worksheets.Toevoegen;

ExcelWorksheetl:= ExcelApplicationl.Worksheets.Add(

Na:= ExcelApplicationl.Worksheets, Count:= 2);

De naam van een ingevoegd of bestaand blad kan worden gewijzigd met de eigenschap Naam. Bijvoorbeeld:

ExcelWorksheetl.Name:= "Factuur"; U kunt een blad uit een boek verwijderen met de methode Verwijderen:

ExcelWerkbladl.Verwijderen(LOCALE_USER_DEFAULT);

U kunt een blad afdrukken met behulp van de afdrukmethode, die niet verschilt van de vergelijkbare methode die eerder voor het boek is beschreven. Het afdrukken van de huidige pagina bij het werken met COM-servers kan bijvoorbeeld als volgt worden opgemaakt:

ExcelWorksheetl:= ExcelApplicationl.ActiveSheet as, ExcelWorksheet; ExcelWorksheetl.Printout(EmptyParam, EmptyParam, EmptyParam, EmptyParam, EmptyParam, EmptyParam, EmptyParam, EmptyParam, LOCALE_USER_DEFAULT);

Bij het werken met automatiseringsservers is OLE eenvoudiger:

ExcelWorksheetl:= ExcelApplicationl.ActiveSheet; ExcelWerkblad.Afdruk;

U kunt een voorbeeld van een vel bekijken voordat u gaat afdrukken met behulp van de PrintPreview-methode:

AfdrukprocedurePreview(EnableChanges: OleVariant; leid: Integer);

De parameter EnableChanges geeft aan of tijdens het bekijken wijzigingen kunnen worden aangebracht. De volgende instructie geeft bijvoorbeeld een voorbeeld van het actieve blad van een werkmap bij het werken met COM-servers:

(ExcelApplicationl.ActiveSheet als ExcelWorksheet).

PrintPreview (waar, LOCALE_USER_DEFAULT) ;

Voor OLE-servers is de analoge verklaring:

ExcelApplicationl.ActiveSheet;PrintPreview(true);

Hallo, in dit artikel zal ik je vertellen hoe je het in je applicatie (programma) kunt gebruiken Delphi DB in het formulier MS-Excel. Ja ja precies MS-Excel. Er is hier niets ingewikkelds. Laten we eerst ons werkblad invullen in MS Excel. De eerste rij in elke kolom neemt altijd onze applicatie als de kolomnaam, d.w.z. de kolomnaam wordt niet als − EEN, B, C enzovoort. Dus in de eerste regel van kolom A en kolom B schreef ik Voor-en achternaam en Cijfer respectievelijk voor elke kolom. Dit worden onze rubrieken, hieronder vul ik de gegevens in die in mijn database komen, nou, dit zijn de namen en cijfers, schrijf ze zelf op. Dus de database is klaar. Laten we er nu een verbinding mee maken. de verbinding wordt op dezelfde manier gemaakt als in MS-toegang, dus er is hier niets ingewikkelds. Op het formulier hebben we de oude componenten

  • TDB-raster
  • TADOQuery
  • TADOVerbinding
  • TDataSource

Hoe deze componenten te verbinden, zal ik je snel vertellen, aangezien dit al door mij is gezegd.

  • TADOQuery c TADOVerbinding in eigendom - verbinding
  • TDataSource Met TADOQuery in eigendom gegevensset
  • TDB-raster c TDataSource in eigendom databron

BIJ TADOVerbinding eigenschap instellen LangePromt in Vals. Het lijkt erop dat er een kleine aanpassing is gemaakt. Nu komen we bij de directe verbinding. In eigendom TADOVerbinding- Verbindingsdraad klik op de knop " ", dan hebben we een kijkvenster

Klik op de knop " Bouwen...” en het volgende venster verschijnt

Selecteer in dit venster de volgende aanbieder: Microsoft OLE DB Provider voor ODBC-stuurprogramma's en druk op de knop " Volgende>> en zie het volgende venster

Plaats in dit venster onmiddellijk een aanwijzer naar " Gebruik een verbindingsreeks” en druk op de knop “ Montage", waarna een venster verschijnt

Ga in dit venster naar het tabblad Computergegevensbron, selecteer in de lijst die verschijnt - Excel-bestanden, of liever, klik met de linkermuisknop op deze periode door te dubbelklikken en specificeer in het venster dat verschijnt het pad naar onze uitblinken-boeken die we hebben gemaakt. Klik daarna op de knop " OK". Alle aansluitingen zijn klaar. Ik wil meer toevoegen als je een bestand hebt uitblinken, waar uw tabel zich in dezelfde map bevindt als het programma, en vervolgens in de eigenschap component TADOVerbinding- Verbindingsdraad het pad naar uw Excel-bestand wordt geschreven, wis het pad en laat alleen de naam van uw uitblinken bestand met de extensie, en in de eigenschap StandaardDataBase dezelfde component, schrijf de naam van uw uitblinken-bestand met extensie . Wanneer u vervolgens uw toepassing start, zullen er geen fouten zijn met een onjuist opgegeven pad naar uw database. Volgende binnen TDB-raster dubbelklik erop en maak in het venster dat verschijnt 2 rijen, dit worden onze kolommen. En ze worden gemaakt door in dit venster op de knop " Nieuw toevoegen (Ins)". Vervolgens markeren we elke regel in de eigenschap FieldName voor de eerste regel en schrijven we - Voor-en achternaam, Omdat in uitblinken-file, heb ik zojuist de naam van de kolom in de eerste regel geschreven (voor de cel A1 Ik heb dit geschreven), en markeer de tweede regel die is gemaakt in TDB-raster, in het pand veldnaam laten we schrijven - Cijfer, aangezien ik het was die de naam van de kolom schreef (in de cel A2 dat heb ik geschreven). Nu kunnen we allemaal onze gegevens activeren. Om dit te doen, in het geval van het hoofdformulier - Aanmaken schrijf het volgende

Zoals je kunt zien, dezelfde query, alleen in plaats van de tabelnaam, zoals we hadden in MS-toegang we specificeren de naam van ons blad in uitblinken, tussen vierkante haken en eindigend met het teken $ . Zoals u kunt zien, is er niets ingewikkelds. In het volgende artikel over de database MS-Excel Ik zal je vertellen hoe je gegevens invoegt, bewerkt enzovoort.

Ik zou willen opmerken dat als je een echte fan bent van voetbal, en nog meer van het Engelse kampioenschap, dat momenteel een van de sterkste is, je waarschijnlijk erg geïnteresseerd zult zijn in het lezen over de voetbalclub

Bij elk van de stappen van dit model kun je maandenlang stoppen en studeren. Als er een speciale behoefte is om aanvullende eigenschappen en methoden te bestuderen, zullen we zeker terugkomen om te studeren. En laten we nu in Delphi gaan werken met werkmapbladen.

2. Hoe een Excel-werkmapblad activeren?

Zoals u weet bij het maken van een lege werkmap uitblinken voegt automatisch 3 lege bladen toe aan deze werkmap. Werken met een specifiek blad ( werkblad of gewoon vel) dit blad moet geactiveerd zijn. Een manier om een ​​werkmapblad te activeren uitblinken in Delphi als volgt:

resourcestring rsEInvalidSheetIndex = "Ongeldige index opgegeven voor werkboeken. Werkbladactivering afgebroken"; rsEInvalidSheetActivate= "Bladactivering voltooid met een fout"; functie Blad activeren(WBIndex: geheel getal; Bladnaam: tekenreeks) : boolean ; var i: geheel getal; begin Resultaat := false ; als WBIndex › MijnExcel. werkboeken. Tel en verhoog Uitzondering. Aanmaken(rsEInvalidSheetIndex) ; probeer voor i := 1 naar MyExcel. Werkboeken [WBIndex] . Lakens. Tel als AnsiLowerCase (MyExcel. WorkBooks [ WBIndex] . Sheets . Item [ i] . Name ) = AnsiLowerCase (SheetName) en begin dan met MyExcel. Werkboeken [WBIndex] . Lakens. Artikel[i] . Activeren ; Resultaat := waar ; pauze; einde ; behalve verhogen Uitzondering. Aanmaken(rsEInvalidSheetActivate) ; einde ; einde ;

Hier wordt de index van de werkmap (WBIndex) in de verzameling ingesteld als functieparameters. Werkboeken en bladnaam.

Als je wilt, kun je hetzelfde blad per index activeren in de verzameling werkbladen- tegelijkertijd is de functie zelf enigszins vereenvoudigd (de voorwaarde voor het controleren van de bladnaam is niet vereist).

Als u er zeker van bent dat de werkmap die u nodig heeft op dit moment actief is, kunt u het gebruik van een extra variabele (werkmapindex WBIndex) vermijden en het blad als volgt activeren:

Mijn Excel. actieve werkmap. Lakens. Artikel[i] . Activeren ;

Laten we nu eens nader kijken naar de methoden die door het object worden gebruikt. werkblad.

3. Methoden voor Excel-werkbladen

Laten we het object nu eens nader bekijken werkblad.

De figuur toont de methoden die ik ooit in mijn werk heb gebruikt.

Totaal object werkblad heeft 30 verschillende methoden die u kunt gebruiken.

Methode Beschrijving
Activeren Maakt het huidige blad actief. We hebben het werk van de methode al overwogen
berekent alle geopende werkmappen, een specifiek werkblad in een werkmap of een opgegeven celbereik in een werkblad
spellingcontrole op het geselecteerde blad
slaat alle wijzigingen in het bestand op
verwijdert het huidige blad werkblad
blad selectie
kopieert het blad naar een andere locatie in de werkmap
plakt de inhoud van het klembord op het blad
retourneert een object dat een enkel diagram vertegenwoordigt (object GrafiekObject GrafiekObjecten) op het blad
blad beweging. Deze methode is vergelijkbaar met de methode Kopiëren. Het enige verschil is dat na het plakken het gekopieerde blad uit het boek wordt verwijderd

Laten we nu elk van de bovenstaande methoden bekijken.

Hieronder, als uitdrukking blad moet uitsteken ( werkblad), tenzij anders aangegeven.

Methode Bereken

Berekening van een werkmap, blad of celbereik.

Opgemerkt moet worden dat de methode call Berekenen niet alleen mogelijk voor een specifiek werkblad van een Excel-werkmap. Overweeg de opties voor het aanroepen van de Calculate-methode.

var MijnExcel:OleVariant; Mijn Excel. Berekenen

in het onderstaande codefragment wordt het actieve blad berekend

Mijn Excel. actieve werkmap. ActiveWorkSheet. Berekenen

Bereken alle formules in kolommen A, B en C:

Mijn Excel. actieve werkmap. ActiveWorkSheet. GebruiktRange . Kolommen("A:C") . Berekenen

Controleer Spellingmethode

De methodeaanroep ziet er als volgt uit:

uitdrukking. CheckSpelling(CustomDictionary, NegeerHoofdletters, AlwaysSuggest, SpellLang)

Op hetzelfde moment als uitdrukking blad moet uitsteken ( werkblad).

Parameter Type Beschrijving
Aangepast woordenboek Variant Met Een tekenreeks die de naam specificeert van het aangepaste woordenboekbestand dat moet worden overwogen als het woord niet wordt gevonden in het hoofdwoordenboek. Als dit argument wordt weggelaten, wordt het standaardwoordenboek gebruikt.
NegeerHoofdletters Variant WAAR, indien nodig, aan Microsoft Excel gemiste woorden die in hoofdletters zijn geschreven. Vals om te Microsoft Excel controleer alle woorden. Als dit argument wordt weggelaten, worden de huidige Excel-instellingen gebruikt.
AltijdSuggestie Variant WAAR, om te Microsoft Excel toonde een lijst met suggesties voor andere spellingen wanneer een verkeerd gespeld woord werd gevonden. Vals, tot Microsoft Excel verwacht de juiste spelling in te voeren. Als dit argument wordt weggelaten, worden de huidige instellingen gebruikt.
SpellLang Variant woordenboek taal. Kan de waarde van een van de constanten aannemen MsoLanguageID , bijvoorbeeld voor de Russische taal SpellLang = 1049, voor Engels (VS) SpellLang = 1033 enz. Meer informatie over taal-ID's.

Hoe grammatica in Excel-blad in Delphi te controleren?

Mijn Excel. actieve werkmap. ActiveWorkSheet. CheckSpelling(CustomDictionary:= EmptyParam, IgnoreUppercase:=false, AlwaysSuggest:=EmptyParam, SpellLang:=1033)

in dit geval MS-Excel zal het huidige blad controleren, inclusief de controle van hoofdletters. De verificatietaal is Russisch. Houd er rekening mee dat om de methode aan te roepen, we expliciet hebben aangegeven welke parameter aan welke waarde moet worden toegewezen. Bovendien gebruikten we om elke parameter over te slaan Lege Param(lege parameter), die in Delphi is een variabele van het type OleVariant.

Het is duidelijk dat een dergelijke manier van aanroepen van methodes (met expliciete aanduiding van alle parameters) niet helemaal handig voor je is en niet algemeen wordt toegepast bij het programmeren in Delphi , maar niettemin, alleen op deze manier en op geen andere manier kun je de gebruikte methoden noemen uitblinken .

Opslaan als methode

Een Excel-werkblad opslaan.

Methode oproep:

expression.SaveAs(FileName, FileFormat, Password, WriteResPassword, ReadOnlyRecommended, CreateBackup, AddToMru,TextCodepage, TextVisualLayout, Local)
Parameter Type Beschrijving
bestandsnaam Variant een tekenreeks die de naam vertegenwoordigt van het bestand dat moet worden opgeslagen. U moet het volledige pad naar het bestand opgeven, anders wordt het bestand in een map opgeslagen uitblinken .
bestandsformaat Variant bestandsformaat dat moet worden gebruikt bij het opslaan. Standaard wordt het bestand opgeslagen in de indeling die u het laatst hebt geselecteerd uitblinken.
Wachtwoord Variant wachtwoord voor het bestand (niet meer dan 15 tekens). Het wachtwoord is hoofdlettergevoelig.
WriteResPassword Variant het wachtwoord dat zal worden gebruikt om wijzigingen aan te brengen in de werkmap. Als het wachtwoord niet is opgegeven, wordt het boek geopend in de modus "Alleen lezen".
ReadOnlyAanbevolen Variant als de parameter is WAAR, en wanneer u het bestand opent, verschijnt er een bericht op het scherm met de aanbeveling om het bestand te openen als alleen-lezen.
Een backup maken Variant WAAR, om een ​​back-upbestand te maken
AddToMru Variant WAAR, om de naam van het opgeslagen bestand toe te voegen aan de lijst met recent geopende bestanden in het hoofdmenu uitblinken
TekstCodepagina en TextVisualLayout Variant momenteel niet gebruikt en bewaard voor achterwaartse compatibiliteit
Lokaal Variant optionele parameter, standaard is Vals.Betekenis WAAR- bestanden opslaan met taal Microsoft Excel (inclusief configuratiescherminstellingen).

MyExcel.ActiveWorkBook.ActiveWorkSheet.SaveAs("C\:MyExcelFile.xls")

In dit geval worden de standaardinstellingen gebruikt bij het opslaan.

Als u het Excel-bestand in een ander formaat moet opslaan, dan in de parameter bestandsformaat een van de tellerwaarden kan worden gebruikt xlBestandsindeling . Enkele betekenissen xlBestandsindeling worden weergegeven in de onderstaande tabel:

Naam Betekenis Beschrijving Bestandsextensie
xlCSV6 csv*.csv
xlExcel856 Excelboek 97-2003*.xls
xlHTML44 HTML-indeling*.htm *.HTML
xlOpenDocumentSpreadsheet60 Spreadsheet OpenDocument*.ods
xlOpenXMLWerkboek51 XML-boek openen*.xlsx

Laten we een kleine procedure schrijven waarmee u een Excel-blad in verschillende formaten kunt opslaan:

const xlCSV = 6 ; xlExcel8 = 56 ; xlHtml = 44 ; xlOpenDocumentSpreadsheet = 60; xlOpenXMLWerkboek = 51; resourcestring rsESaveActiveSheet = "Fout bij opslaan van actief werkblad"; procedure SaveAs(const AFileName: TFileName; AFileFormat: geheel getal); probeer MijnExcel. actieve werkmap. ActiveSheet. SaveAs(AFileName, AFileFormat) ; behalve verhogen Uitzondering. Aanmaken(rsESaveActiveSheet) ; einde ; einde ;

Methode verwijderen

Een Excel-werkblad verwijderen.

MyExcel.ActiveWorkBook.WorkSheets.Item.Select

Markeert het derde blad van het boek

Kopieer methode

Een blad kopiëren naar een andere locatie in de werkmap.

Methode oproep:

expression.Copy(Before, After)

Als u echter de parameter Voordat dan moet je het niet gebruiken Na en vice versa. Ik zou uw aandacht willen vestigen op het feit dat het de BLAD is die wordt aangegeven, en niet de bladindex.

Hoe Excel-blad kopiëren in Delphi?

MyExcel.ActiveWorkBook.WorkSheets.Item.Copy(Na:=MyExcel.ActiveWorkBook.WorkSheets.Item)

In dit geval wordt het eerste blad gekopieerd en na het derde geplakt.

Plak Methode

Plak de inhoud van het klembord in een Excel-blad.

Methode oproep:

expressie.Plakken(Bestemming, Link)

Hoe plak ik de inhoud van het klembord in een Excel-blad in Delphi?

MyExcel.ActiveWorkBook.ActiveSheet.Paste(Bestemming:=MyExcel.ActiveWorkBook.ActiveSheet.Range("D1:D5"))

In dit geval wordt de inhoud van de buffer ingevoegd in kolom D in de rijen 1 tot en met 5. Opgemerkt moet worden dat als de inhoud van de buffer bijvoorbeeld niet aan de voorwaarde voldoet, er slechts 1 getal in de buffer staat, dan wordt er een exception gegooid.

Methode GrafiekObjecten

Retourneert een object dat een enkel diagram vertegenwoordigt (object GrafiekObject) of de verzameling van alle diagrammen (object GrafiekObjecten) op het blad.

Methode oproep:

expressie.ChartObjects

Hoe krijg ik een grafiek in een Excel-blad in Delphi?

MyExcel.ActiveWorkBook.ActiveSheet.ChartObjects

In dit geval wordt de eerste verkregen.

Verplaats methode

Blad beweging. Deze methode is vergelijkbaar met de . Het enige verschil is dat na het plakken het gekopieerde blad uit het boek wordt verwijderd.

Hier zijn enkele van de methoden die ik ooit heb gebruikt bij het werken met uitblinken in Delphi . In het algemeen kan men dat zeggen Delphi kan worden gecontroleerd MS-Excel niet erger dan wanneer u rechtstreeks met deze applicatie werkt, het belangrijkste is om niet te vergeten welke methode of eigenschap waarvoor verantwoordelijk is :). Nou, om het niet te vergeten, heb ik een kleine MindMap gemaakt, die ik periodiek zal aanvullen en updaten. Door op de link te klikken, kunt u Excel-objecten, door hen gebruikte methoden, methodeparameters en hun typen in overeenstemming met Delphi-typen bekijken. Over het algemeen een klein grafisch spiekbriefje voor degenen die graag met Excel in Delphi omgaan.