Microsoft Excel წვდომა Delphi გარემოდან. დამხმარე ოპერაციები EXCEL-ში. როგორ მივიღოთ გამოყენებული უჯრედების დიაპაზონი

ეს მიმოხილვა განიხილავს ძირითად დიზაინებს, რომლებიც საშუალებას გაძლევთ შეხვიდეთ Excel სამუშაო წიგნში DELPHI-დან.

EXCEL-ის წიგნზე წვდომის ორგანიზება

პროგრამაში MS Excel-თან ურთიერთობისთვის თქვენ უნდა გამოიყენოთ ComObj მოდული
იყენებს ComObj;
და გამოაცხადეთ ცვლადი შემდეგი ტიპის MS excel-ზე წვდომისთვის:
var Excel: Variant;

უმარტივეს შემთხვევაში, Excel ცვლადის ინიციალიზაცია შეიძლება ასე გაკეთდეს:
Excel:= CreateOleObject("Excel.Application");

ახალი წიგნის შექმნა:
Excel.Workbooks.Add;

არსებული წიგნის გახსნა (სადაც გზა არის ფაილის გზა xls გაფართოებით.):
Excel.Workbooks.Open;

არსებული სამუშაო წიგნის გასახსნელად მხოლოდ წასაკითხად:
Excel.Workbooks.Open;

Excel-ის დახურვა:
Excel.ActiveWorkbook.Close;
Excel.Application.Quit;

Excel მოთხოვნების დაბლოკვა (დადასტურებები, შეტყობინებები), მაგალითად, ფაილის შენახვის მოთხოვნის დაბლოკვა:
Excel.DisplayAlerts:=False;

ეკრანზე Excel-ის ჩვენება:
Excel.Visible:= True;
ან დამალე:
Excel.Visible:= False;

აქტიური Excel ფურცლის შიგთავსის დაბეჭდვა:
Excel.ActiveSheet.PrintOut;

მონაცემების კითხვა/წერა EXCEL-ში

თქვენ შეგიძლიათ შეხვიდეთ უჯრედზე მიმდინარე Excel სამუშაო წიგნში შემდეგნაირად:
Excel.Range["B2"]:="გამარჯობა!";- საკანში მნიშვნელობის ჩასაწერად ან s:=Excel.Range["B2"]; - წასაკითხად, სადაც B2 არის უჯრედის მისამართი.

ან გამოიყენეთ R1C1 ბმულის სტილი:
Excel.Range]:="გამარჯობა!";, სად არის უჯრედის კოორდინატი.

ზოგადად, შეგიძლიათ ნებისმიერი მნიშვნელობა მიანიჭოთ Excel-ის უჯრედს (სიმბოლო, მთელი რიცხვი, წილადი, თარიღი) და Excel დააყენებს უჯრედში ნაგულისხმევ ფორმატირებას.

უჯრედების ფორმატირება EXCEL-ში

თქვენ შეგიძლიათ აირჩიოთ (აირჩიოთ) უჯრედების ჯგუფი შემდგომი მუშაობისთვის შემდეგნაირად:
Excel.Range, Excel.Cells].Select; ან Excel.Range["A1:C5"].აირჩიეთ; ამ შემთხვევაში შეირჩევა A1 და C5 უჯრედებს შორის მდებარე ტერიტორია.

შერჩევის შემდეგ შეგიძლიათ დააყენოთ:

1) უჯრედების შერწყმა Excel.Selection.MergeCells:=True;

2) შეფუთვა Excel.Selection.WrapText:=True-ის მიხედვით;

3) ჰორიზონტალური გასწორება Excel.Selection.HorizontalAlignment:=3; როდესაც დაყენებულია 1-ზე, გამოიყენება ნაგულისხმევი გასწორება, როდესაც დაყენებულია 2-ზე, გასწორება რჩება მარცხნივ, 3 არის ცენტრში და 4 არის მარჯვნივ.

4) ვერტიკალური გასწორება Excel.Selection.VerticalAlignment:=1; მინიჭებული მნიშვნელობები იგივეა, რაც ჰორიზონტალური გასწორება.

5) საზღვარი უჯრედებისთვის Excel.Selection.Borders.LineStyle:=1; როდესაც დაყენებულია 1-ზე, უჯრედის საზღვრები შედგენილია თხელი მყარი ხაზებით.

გარდა ამისა, შეგიძლიათ მიუთითოთ Borders თვისების მნიშვნელობები, მაგალითად, 3-ის ტოლი. შემდეგ დაყენდება მხოლოდ ზედა საზღვარი შერჩევის ბლოკისთვის: Excel.Selection.Borders.LineStyle:=1;

Borders თვისების მნიშვნელობა განსაზღვრავს უჯრედის კიდეების განსხვავებულ კომბინაციას. ორივე შემთხვევაში, შეგიძლიათ გამოიყენოთ მნიშვნელობები 1-დან 10-მდე დიაპაზონში.

პაროლების გამოყენება EXCEL-ში

აქტიური სამუშაო წიგნისთვის პაროლის დაყენება შეიძლება შემდეგნაირად:
სცადე // სცადე პაროლის დაყენება
Excel.ActiveWorkbook.protect("pass");
გარდა // მოქმედებებისა, თუ პაროლის დაყენების მცდელობა ვერ მოხერხდა
დასასრული;
სადაც საშვი არის წიგნისთვის დასაყენებელი პაროლი.

წიგნიდან პაროლის ამოღება მსგავსია, გამოიყენეთ ბრძანება
Excel.ActiveWorkbook.Unprotect("pass");

Excel-ის სამუშაო წიგნის აქტიური ფურცლისთვის პაროლის დაყენება და წაშლა ხდება ბრძანებების გამოყენებით
Excel.ActiveSheet.protect("pass"); // პაროლის დაყენება
Excel.ActiveSheet.Unprotect("pass"); // პაროლის ამოღება
სადაც საშვი არის წიგნის დასაცავად დაყენებული პაროლი.

დამხმარე ოპერაციები EXCEL-ში

რიგების წაშლა shift up-ით:
Excel.Rows["5:15"].აირჩიეთ;
Excel.Selection.Delete;
ამ მოქმედებების შესრულებისას 5-დან 15-მდე სტრიქონები წაიშლება.

დააყენეთ გაყინვის ადგილი Excel-ის აქტიურ სამუშაო ფურცელზე
// გაყინეთ ტერიტორია, თუ ის დაყენებულია
Excel.ActiveWindow.FreezePanes:=False;
// აირჩიეთ სასურველი უჯრედი, ამ შემთხვევაში D3
Excel.Range["D3"].Select;
// დააყენეთ გასაყინავი ტერიტორია
Excel.ActiveWindow.FreezePanes:=True;

Წარმატებები!

შინაარსი-განლაგება: ფორმა-მონაცემები; name = "დახარისხება" 50

გაცვალეთ მონაცემები MS Excelდელფიდახმარებით OLE.

Ძვირფასო კოლეგებო!

ჩვენ ყველას ადრე თუ გვიან ვაწყდებით პაკეტების აპლიკაციებთან მონაცემთა გაცვლის ამოცანას MS Office. ერთ-ერთი მათგანია MS Excel. და კონკრეტულად ამ პროდუქტთან ურთიერთქმედების შესახებ MS Officeგანხილული იქნება ამ სტატიაში.

ურთიერთობის ერთი გზა დელფიMS Excel- არის მასთან დაკავშირება როგორც OLEობიექტი.

Ისე.
პირველ რიგში, მუშაობა MS Excelდა OLEგანყოფილებაში დამატება იყენებსმოდულები ComObjდა ActiveX.

და პირველი რაც უნდა შევამოწმოთ არის თუ არა დაინსტალირებული MS Excelპრინციპში მომხმარებლის კომპიუტერზე.
ამისათვის ჩვენ გამოვიყენებთ ფუნქციას CLSIDFromProgID, რომელიც გამოიყურება რეესტრში CLSIDგადაცემულისთვის ProgID:
დახმარება MSDN-დან: მეთოდი CLSIDFromProgID
Პარამეტრები:
pszProgID: PoleStr- სტრიქონი ობიექტის სახელწოდებით
კლიდი: TCLSID- სტრუქტურის მაჩვენებელი TGUIDრომელზედაც გადაეცემა ნაპოვნი საგანი;
აბრუნებს:
HRESULT— შედეგი, რომელსაც შეუძლია მიიღოს შემდეგი მნიშვნელობები:
S_OK- ნაპოვნი ობიექტი;
CO_E_CLASSSTRING- დარეგისტრირდა CLSIDამისთვის ProgIDარასწორია;
REGDB_E_WRITEREGDB- დაწერე შეცდომა CLSIDრეესტრში.
ჩამოთვლილი შედეგებიდან გვჭირდება S_OK.
დავწეროთ ფუნქცია ყოფნის დასადგენად Excelმომხმარებლისგან:

ფუნქცია IsXlsInstall: ლოგიკური; var CLSID: TCLSID; დასაწყისი შედეგი:= (CLSIDFromProgID("Excel.Application", CLSID) = S_OK); დასასრული;

თუ Excelდაინსტალირებულია, შემდეგ დავუკავშირდეთ მას. ამის გაკეთება შეგიძლიათ ორი გზით: GetActiveOleObject— მიიღეთ ბმული უკვე გაშვებულ მაგალითზე Excelან CreateOleObject- შექმენით ახალი ინსტანცია Excel.
თუ ჩვენ გვაქვს დავალება, მივიღოთ მონაცემები გაშვებულიდან Excel, მაშინ უნდა გამოვიყენოთ მხოლოდ პირველი ვარიანტი, სხვა შემთხვევაში ვცდილობთ დაკავშირებას და თუ ეს არ გამოვიდა, მაშინ ვქმნით მას.
დასაკავშირებლად დავწეროთ 2 ფუნქცია XlsConnectდა ახლის გაშვება XlsStart:
მოდით დავამატოთ ცვლადი FXlsAppტიპით ვარიანტი, რომელიც შეიცავს მითითებას ობიექტზე Excel.

პირადი FXlsApp: ვარიანტი; *** ფუნქცია XlsConnect: ლოგიკური; დასაწყისი შედეგი:= მცდარი; სცადე FXlsApp:= GetActiveOleObject("Excel.Application"); შედეგი:= მართალია; დასასრულის გარდა; დასასრული; პროცედურა XlsStart; start FXlsApp:= CreateOleObject("Excel.Application"); დასასრული;

ახლა თქვენ შეგიძლიათ დაამატოთ ღილაკი, დაწკაპუნებისას ჩვენ დავუკავშირდებით MS Excelწერილობითი ფუნქციების გამოყენებით:

პროცედურა btnConnectClick(Sender: TObject); დაიწყეთ, თუ არა IsXlsInstall, შემდეგ გაზარდეთ Exception.Create("MS Excel აპლიკაცია არ მოიძებნა ამ კომპიუტერზე!"); თუ არა XlsConnect, მაშინ XlsStart; FXlsApp.Visible:= True; დასასრული;

ნაგულისხმევი ფანჯარა Excelგადის ფონზე. ხაზი FXlsApp.Visible:= True;ქმნის ფონის ფანჯარას Excelხილული.

ფანჯარა Excelიწყება ცარიელი და თქვენ უნდა დაამატოთ მას სამუშაო წიგნი. ეს კეთდება მეთოდის გამოყენებით სამუშაო წიგნები.დამატება, რომელიც ამატებს ახალ წიგნს ან ხსნის ადრე შენახულს, თუ მიუთითებთ ფაილის გზას.
დავამატოთ პროცედურა, რომელიც ამას გააკეთებს:

პროცედურა XWorkbookAdd(const FilePath: string = ""); დაწყება FXlsApp.WorkBooks.Add(FilePath); დასასრული;

წიგნი დაემატა, ახლა ვცადოთ მასში რამე დავწეროთ.

FXlsApp.Cells := "სატესტო სტრიქონი";

სად მწკრივიარის რიგის ინდექსი და პოლკოვნიკი- სვეტის ინდექსი, რომელიც იწყება ერთით.

FXlsApp.Range["A1"] := "უჯრედი A1";

სად Დიაპაზონიარის უჯრედების მასივი და A1- ნაცნობი Excelუჯრედის კოორდინატები.
დიაპაზონი შეიძლება განისაზღვროს კოორდინატებად. მაგალითად, კოდი

FXlsApp.Range["A3:A10"] := 5;

შეავსებს ყველა უჯრედს ნომრით 5 A3ავტორი A10და კოდი

FXlsApp.Range["A3:A10"].ინტერიერი.ფერი:= clMoneyGreen;

ხაზს უსვამს იმავე დიაპაზონს ღია მწვანეში.
საპირისპირო მიმართულებით, ანუ მონაცემების მოპოვება Excel, მუშაობს იგივე. ხაზი

ShowMessage(FXlsApp.Cells);

გამოჩნდება შეტყობინება უჯრედის შიგთავსით კოორდინატებით: Row=5, Column=1.

მას შემდეგ რაც ჩვენ გავაკეთებთ საჭირო მანიპულაციებს Excel, ჩვენ შეგვიძლია შევინახოთ მიღებული წიგნი ფაილში შემდეგი ბრძანებით:

FXlsApp.ActiveWorkbook.SaveAs("C:\Test.xlsx");

სად აქტიური სამუშაო წიგნი- მიმდინარე წიგნი.
და დახურეთ აპლიკაცია Excelბრძანება:

FXlsApp.Quit;

როგორ გესმით კონტროლის ეს პარამეტრები? Excelსაწყისი დელფიშეზღუდული არ არის. და არსებობს ერთი საკმაოდ მარტივი გზა იმის გასარკვევად, თუ როგორ უნდა შეასრულოთ საჭირო მოქმედება Excelსაწყისი დელფი.
მას მაკროები ჰქვია.

წარმოვიდგინოთ, რომ რამდენიმე უჯრედი უნდა გავაერთიანოთ ერთში და არ ვიცით როგორ გავაკეთოთ ეს. მაგრამ ჩვენ გვინდა გავარკვიოთ. ამისათვის ჩვენ ვასრულებთ შემდეგ ნაბიჯებს:
1. გაშვება Excelდა შექმენით ცარიელი წიგნი.
2. ნაგულისხმევად გაუშვით ბრძანება „Record Macro“, მაკროს სახელი იქნება „Macro1“. (სხვადასხვა ვერსიით Excelეს ბრძანება განთავსებულია მენიუს სხვადასხვა ელემენტებში).
3. აირჩიეთ უჯრედების გარკვეული დიაპაზონი და დააწკაპუნეთ ღილაკზე „Merge and Place in Center“.
4. შეაჩერე მაკროს ჩაწერა.
5. გამოიძახეთ მაკროების სია და აირჩიეთ თქვენი ჩაწერილი მაკრო იქ.
6. დააწკაპუნეთ ღილაკზე „შეცვლა“.
რედაქტორი იწყებს Microsoft Visual Basic აპლიკაციისთვისრომელშიც ჩვენ ვხედავთ განხორციელებული ქმედებების კოდს:

Sub Macro1() " Macro1 Macro " შერჩევით .HorizontalAlignment = xlCenter .VerticalAlignment = xlBottom .WrapText = False .Orientation = 0 .AddIndent = False .IndentLevel = 0 .Faldergell =C იხილეთ შერჩევით დასასრული .Merge End Sub

მოდით უფრო ახლოს მივხედოთ იმას, რაც მან მოგვწერა აქ:
შერჩევით— უჯრედების არჩეული დიაპაზონისთვის დააყენეთ თვისებები:
Horizontal Alignment = xlCenter— ჰორიზონტალური ორიენტაცია = ცენტრში.
ვერტიკალური გასწორება = xlქვედა- ვერტიკალური ორიენტაცია - ქვედა კიდის გასწვრივ.
WrapText = მცდარი— სიტყვებით ტექსტის შეფუთვა გამორთულია.
ორიენტაცია = 0- ორიენტაცია 0 გრადუსი.
AddIndent = False— ავტომატური ჩაღრმავების ჩართვა/გამორთვა.
IndentLevel = 0- შეწევის დონე 0.
ShrinkToFit = მცდარი- ტექსტის შეკუმშვა, რათა მოერგოს სვეტს ჩართვა/გამორთვა.
ReadingOrder = xlContext— კითხვის თანმიმდევრობა კონტექსტის მიხედვით.
MergeCells = მცდარი- გაერთიანებული უჯრედების ჩართვა/გამორთვა
დასრულება ერთად— მუშაობის განყოფილების დასრულება შერჩეული დიაპაზონით.
შერჩევა.შერწყმა— შეაერთეთ არჩეული დიაპაზონი.

ახლა ვცადოთ უჯრედების გაერთიანება Delphi-დან:

ჩვენ ვირჩევთ საჭირო დიაპაზონს.

FXlsApp.Selection.MergeCells:= True;

ჩვენ ვაერთებთ უჯრედებს თვისების დაყენებით. ან გამოიყენეთ მეთოდი:

FXlsApp.Selection.Merge;

ამ გზით თქვენ შეგიძლიათ მიიღოთ კოდი თითქმის ნებისმიერი საჭირო მანიპულირებისთვის.
და თუ რომელიმე თვისება ან მეთოდი აჩენს კითხვებს, შეგიძლიათ გამოიყენოთ დახმარება MSDN-ზე.

გთხოვთ გაითვალისწინოთ მასივებით მუშაობის თავისებურება VBA. ინდექსები მასივებში in დელფიშეფუთულია კვადრატულ ფრჩხილებში, ხოლო შიგნით VBAისინი იქნებიან მრგვალებში. და კოდი შედის დელფი

FXlsApp.Range["B5:C8"]. აირჩიეთ;

VBAდაემსგავსება

დიაპაზონი("D5:H14").აირჩიეთ;

ქვემოთ მივცემ პატარას FAQურთიერთქმედების საკითხზე Excelსაწყისი დელფი

როგორ განვსაზღვროთ მუდმივი მნიშვნელობები Excel-ში Delphi-ში გამოსაყენებლად?

რედაქტორში VBAჩვენ დავაყენეთ გაჩერების წერტილი ინტერესის მუდმივის საპირისპიროდ. დააჭირეთ შესრულებას და როდესაც შესრულება შეჩერდება, მიუთითეთ ინტერესის მუდმივზე:

როგორ გამორთოთ შეტყობინებების შედეგები Excel-ში?

FXlsApp.DisplayAlerts:= False;

როგორ მივიღოთ წიგნების სია Excel-დან?

i:= 1-ისთვის FXlsApp.Workbooks.Count do ListBox1.Items.Add(FXlsApp.Workbooks.Item[i].Name);

როგორ გამორთოთ ქსელის ჩვენება?

FXlsApp.ActiveWindow.DisplayGridlines:= False;

როგორ აჩვენოთ მიმდინარე ფურცელი ბეჭდვის გადახედვის სახით?

FXlsApp.ActiveWindow.SelectedSheets.PrintPreview;

როგორ გავხადოთ ტექსტი უჯრედებში თამამი?

Var Row: მთელი რიცხვი; // სიმებიანი ინდექსი Col: მთელი რიცხვი; // უჯრედის ინდექსი TextSelStart: მთელი რიცხვი; // დაწყებული სიმბოლოდან TextSelLength: მთელი რიცხვი; // შერჩეული სიმბოლოების რაოდენობა იწყება FXlsApp.Cells.Characters(TextSelStart, TextSelLength).Font.Bold:= True; დასასრული;

როგორ მოვათავსოთ მწკრივის სიმაღლე წებოვანი უჯრედისთვის?

Var merge_area: ვარიანტი; cell_width, cell_width, i: იწყება მთელი რიცხვი // შერწყმული უჯრედების დიაპაზონის შენახვა ცვლადში merge_area:= FXlsApp.Range["D5"].MergeArea; // შეინახეთ უჯრედის სიგანე, რომლისთვისაც ავირჩევთ სიმაღლის cell_width:= FXlsApp.Range["D5"].ColumnWidth; უჯრედების_სიგანე:= 0; for i:= 1 to merge_area.Columns.Count do // მიიღეთ გაერთიანებული დიაპაზონის ყველა სვეტის მთლიანი სიგანე cell_width:= უჯრედების_სიგანე + merge_area.Columns[i].ColumnWidth; // უჯრედების გაერთიანება merge_area.UnMerge; // დააყენეთ ინტერესი უჯრედის სიგანე მთლიანი სიგანე FXlsApp.Range["D5"].ColumnWidth:=cell_width; // სტანდარტული მეთოდის გამოძახება მწკრივის სიმაღლის ავტომატური მორგებისთვის FXlsApp.Rows.EntireRow.AutoFit; // დააბრუნეთ საინტერესო უჯრედის საწყისი სიგანე FXlsApp.Range["D5"].ColumnWidth:= cell_width; // დიაპაზონის კვლავ წებოვნება merge_area.Merge; დასასრული;

როგორ მივიღოთ გამოყენებული უჯრედების დიაპაზონი?

შედეგი:= exApp.ActiveSheet.UsedRange;

როგორ მივიღოთ სვეტის ასო ინდექსის მიხედვით?

იყენებს მათემატიკას; *** ფუნქცია ColIdxToStr(const Col: მთელი რიცხვი): string const CharsCount: მთელი რიცხვი = 26; ოფსეტი: მთელი რიცხვი = 64; var რანგი: ბაიტი; Col, Tmp: მთელი რიცხვი; დასაწყისი შედეგი:= ""; ხოლო პოლკოვნიკი > 0 იწყება რანგი:= 0; Tmp:=Col; ხოლო Tmp > CharsCount დაიწყება Tmp:= Ceil(Tmp / CharsCount - 1); Inc(რანკი); დასასრული;

შედეგი:= შედეგი + Chr(Tmp + Offset); Col:= Col - Trunc(Power(CharsCount,Rank)) * Tmp; დასასრული; დასასრული;

ამ სტატიაში ჩვენ განვიხილავთ ძირითად კონსტრუქციებს, რომლებიც საშუალებას გაძლევთ შეხვიდეთ MS Excel სამუშაო წიგნში Delphi-დან.

EXCEL-ის წიგნზე წვდომის ორგანიზება

პროგრამაში MS Excel-თან ურთიერთობისთვის თქვენ უნდა გამოიყენოთ ComObj მოდული

იყენებს ComObj;

და გამოაცხადეთ ცვლადი შემდეგი ტიპის MS Excel-ზე წვდომისთვის:

უმარტივეს შემთხვევაში, Excel ცვლადის ინიციალიზაცია შეიძლება ასე გაკეთდეს:

Var MsExcel: Variant;

ახალი წიგნის შექმნა:

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

არსებული წიგნის გახსნა (სადაც გზა არის ფაილის გზა xls გაფართოებით.):

MsExcel.Workbooks.Add;

არსებული სამუშაო წიგნის გასახსნელად მხოლოდ წასაკითხად:

MsExcel.Workbooks.Add;

Excel-ის დახურვა:

MsExcel.Workbooks.Open;

MsExcel.ActiveWorkbook.Close; MsExcel.Application.Quit;

Ms Excel-ის მოთხოვნების (დადასტურებები, შეტყობინებების) დაბლოკვა, მაგალითად, ფაილის შენახვის მოთხოვნის დაბლოკვა:

ეკრანზე Excel-ის ჩვენება:

MsExcel.DisplayAlerts:=False;

MsExcel.Visible:= True;

ან დამალე:

MsExcel.Visible:= False;

აქტიური MS Excel ფურცლის შიგთავსის დაბეჭდვა:

MsExcel.ActiveSheet.PrintOut;

თქვენ შეგიძლიათ შეხვიდეთ უჯრედზე მიმდინარე Excel სამუშაო წიგნში შემდეგნაირად:

მონაცემების კითხვა/წერა EXCEL-ში

უჯრედში მნიშვნელობის ჩასაწერად:

MsExcel.Range["B2"]:="გამარჯობა!";

მნიშვნელობის წასაკითხად უჯრედიდან:

S:=MsExcel.Range["B2"]; სად B2

- უჯრედის მისამართი.

ან R1C1 ბმულის სტილის გამოყენებით:

S:=MsExcel.Range["B2"]; MsExcel.Range]:="გამარჯობა!";

- უჯრედის კოორდინატი.

ზოგადად, შეგიძლიათ ნებისმიერი მნიშვნელობა მიანიჭოთ Excel-ის უჯრედს (სიმბოლო, მთელი რიცხვი, წილადი, თარიღი) და Ms Excel დააყენებს უჯრედში ნაგულისხმევ ფორმატირებას.

თქვენ შეგიძლიათ აირჩიოთ (აირჩიოთ) უჯრედების ჯგუფი შემდგომი მუშაობისთვის შემდეგნაირად:

უჯრედების ფორმატირება EXCEL-ში

MsExcel.Range, MsExcel.Cells].Select; // ან MsExcel.Range["A1:C5"].აირჩიეთ;

ამ შემთხვევაში შეირჩევა A1 და C5 უჯრედებს შორის მდებარე ტერიტორია.

შერჩევის შემდეგ, შეგიძლიათ დააყენოთ უჯრედების შერწყმა, სიტყვების შეფუთვა და ჰორიზონტალური და ვერტიკალური გასწორება:

// უჯრედების შერწყმა MsExcel.Selection.MergeCells:=True; // შეფუთვა MsExcel.Selection.WrapText:=True; // ჰორიზონტალური გასწორება MsExcel.Selection.HorizontalAlignment:=3; // ვერტიკალური გასწორება MsExcel.Selection.VerticalAlignment:=1;

შემდეგი მნიშვნელობები გამოიყენება ვერტიკალური და ჰორიზონტალური გასწორებისთვის:
1 - გამოიყენება ნაგულისხმევი გასწორება
2 - მარცხნივ გასწორება
3 - ცენტრში

4 - მარჯვნივ.

უჯრედის საზღვარი

გარდა ამისა, შეგიძლიათ მიუთითოთ Borders თვისების მნიშვნელობები, მაგალითად, 3-ის ტოლი. შემდეგ დაყენდება მხოლოდ ზედა საზღვარი შერჩევის ბლოკისთვის:

MsExcel.Selection.Borders.LineStyle:=1;

Borders თვისების მნიშვნელობა განსაზღვრავს უჯრედის კიდეების განსხვავებულ კომბინაციას. ორივე შემთხვევაში, შეგიძლიათ გამოიყენოთ მნიშვნელობები 1-დან 10-მდე დიაპაზონში.

პაროლების გამოყენება EXCEL-ში

აქტიური სამუშაო წიგნისთვის პაროლის დაყენება შეიძლება შემდეგნაირად:

სცადეთ // სცადეთ პაროლის დაყენება MsExcel.ActiveWorkbook.protect("pass"); გარდა // ქმედებებისა, თუ პაროლის დაყენების მცდელობა ვერ დასრულდება;

S:=MsExcel.Range["B2"]; გაივლის- დააყენეთ პაროლი წიგნისთვის.

წიგნიდან პაროლის ამოღება მსგავსია, გამოიყენეთ ბრძანება

MsExcel.ActiveWorkbook.Unprotect("pass");

S:=MsExcel.Range["B2"]; გაივლის

Excel-ის სამუშაო წიგნის აქტიური ფურცლისთვის პაროლის დაყენება და წაშლა ხდება ბრძანებების გამოყენებით

MsExcel.ActiveSheet.protect("pass"); // პაროლის დაყენება MsExcel.ActiveSheet.Unprotect("pass"); // პაროლის ამოღება

S:=MsExcel.Range["B2"]; გაივლის- პაროლი დაყენებულია წიგნის დასაცავად.

დამხმარე ოპერაციები EXCEL-ში

რიგების წაშლა shift up-ით:

MsExcel.Rows["5:15"].აირჩიეთ; MsExcel.Selection.;

ამ მოქმედებების შესრულებისას 5-დან 15-მდე სტრიქონები წაიშლება.

დააყენეთ გაყინვის ადგილი Excel-ის აქტიურ სამუშაო ფურცელზე

// გაყინეთ არე, თუ დაყენებული იყო MsExcel.ActiveWindow.FreezePanes:=False; // აირჩიეთ სასურველი უჯრედი, ამ შემთხვევაში D3 MsExcel.Range["D3"].Select; // დააყენეთ არეალის გაყინვა MsExcel.ActiveWindow.FreezePanes:=True;

აქტიური Excel სამუშაო წიგნის შენახვა


იყენებს ComObj;

var Excel: Variant;

ახალი წიგნის შექმნა:
Excel.Workbooks.Add;


Excel.Workbooks.Open;

Excel-ის დახურვა:
Excel.ActiveWorkbook.Close;
Excel.Application.Quit;


Excel.DisplayAlerts:=False;

ეკრანზე Excel-ის ჩვენება:
Excel.Visible:= True;
ან დამალე:
Excel.Visible:= False;


Excel.ActiveSheet.PrintOut;

მონაცემების კითხვა/წერა EXCEL-ში



სადაც B2 არის უჯრედის მისამართი.


უჯრედების ფორმატირება EXCEL-ში



ან


1) უჯრედების შერწყმა

2) სიტყვების შეფუთვა





5) უჯრედების საზღვარი



Excel.Selection.Borders.LineStyle:=1;

პაროლების გამოყენება EXCEL-ში


სცადე


გარდა

დასასრული;





სადაც საშვი არის წიგნის დასაცავად დაყენებული პაროლი.


Excel.Rows["5:15"].აირჩიეთ;
Excel.Selection.Delete;





Excel.Range["D3"].Select;


Წარმატებები!

წყარო:

ეს მიმოხილვა განიხილავს ძირითად დიზაინებს, რომლებიც საშუალებას გაძლევთ მიიღოთ Excel სამუშაო წიგნი DELPHI-დან.

EXCEL-ის წიგნზე წვდომის ორგანიზება

პროგრამაში MS Excel-თან ურთიერთობისთვის თქვენ უნდა გამოიყენოთ ComObj მოდული
იყენებს ComObj;
და გამოაცხადეთ ცვლადი შემდეგი ტიპის MS excel-ზე წვდომისთვის:
var Excel: Variant;

უმარტივეს შემთხვევაში, Excel ცვლადის ინიციალიზაცია შეიძლება გაკეთდეს ასე:
Excel:= CreateOleObject("Excel.Application");

ახალი წიგნის შექმნა:
Excel.Workbooks.Add;

არსებული წიგნის გახსნა (სადაც გზა არის ფაილის გზა xls გაფართოებით.):
Excel.Workbooks.Open;

არსებული სამუშაო წიგნის გასახსნელად მხოლოდ წასაკითხად:
Excel.Workbooks.Open;

Excel-ის დახურვა:
Excel.ActiveWorkbook.Close;
Excel.Application.Quit;

Excel მოთხოვნების დაბლოკვა (დადასტურებები, შეტყობინებები), მაგალითად, ფაილის შენახვის მოთხოვნის დაბლოკვა:
Excel.DisplayAlerts:=False;

ეკრანზე Excel-ის ჩვენება:
Excel.Visible:= True;
ან დამალე:
Excel.Visible:= False;

აქტიური Excel ფურცლის შიგთავსის დაბეჭდვა:
Excel.ActiveSheet.PrintOut;

მონაცემების კითხვა/წერა EXCEL-ში

თქვენ შეგიძლიათ შეხვიდეთ უჯრედზე მიმდინარე Excel სამუშაო წიგნში შემდეგნაირად:
Excel.Range["B2"]:="გამარჯობა!";- ჩაწერეთ მნიშვნელობა უჯრედში ან
s:=Excel.Range["B2"]; - კითხვისთვის,
სადაც B2 არის უჯრედის მისამართი.

ან გამოიყენეთ R1C1 ბმულის სტილი:
Excel.Range]:="გამარჯობა!";სად არის უჯრედის კოორდინატი.

ზოგადად, შეგიძლიათ ნებისმიერი მნიშვნელობა მიანიჭოთ Excel-ის უჯრედს (სიმბოლო, მთელი რიცხვი, წილადი, თარიღი) და Excel დააყენებს უჯრედში ნაგულისხმევ ფორმატირებას.

უჯრედების ფორმატირება EXCEL-ში

თქვენ შეგიძლიათ აირჩიოთ (აირჩიოთ) უჯრედების ჯგუფი შემდგომი მუშაობისთვის შემდეგნაირად:
Excel.Range, Excel.Cells].Select;
ან
Excel.Range["A1:C5"].აირჩიეთ;
ამ შემთხვევაში შეირჩევა A1 და C5 უჯრედებს შორის მდებარე ტერიტორია.

შერჩევის შემდეგ შეგიძლიათ დააყენოთ:
1) უჯრედების შერწყმა
Excel.Selection.MergeCells:=True;
2) სიტყვების შეფუთვა
Excel.Selection.WrapText:=True;
3) ჰორიზონტალური გასწორება
Excel.Selection.HorizontalAlignment:=3;
როდესაც დაყენებულია 1-ზე, გამოიყენება ნაგულისხმევი გასწორება, როდესაც დაყენებულია 2-ზე, გასწორება რჩება მარცხნივ, 3 არის ცენტრში და 4 არის მარჯვნივ.
4) ვერტიკალური განლაგება
Excel.Selection.VerticalAlignment:=1;
მინიჭებული მნიშვნელობები იგივეა, რაც ჰორიზონტალური გასწორება.
5) უჯრედების საზღვარი
Excel.Selection.Borders.LineStyle:=1;
როდესაც დაყენებულია 1-ზე, უჯრედის საზღვრები შედგენილია თხელი მყარი ხაზებით.
გარდა ამისა, შეგიძლიათ მიუთითოთ Borders თვისების მნიშვნელობები, მაგალითად, უდრის 3-ს. შემდეგ დაყენდება მხოლოდ ზედა საზღვარი შერჩევის ბლოკისთვის:
Excel.Selection.Borders.LineStyle:=1;
Borders თვისების მნიშვნელობა განსაზღვრავს უჯრედის კიდეების განსხვავებულ კომბინაციას.
ორივე შემთხვევაში, შეგიძლიათ გამოიყენოთ მნიშვნელობები 1-დან 10-მდე დიაპაზონში.

პაროლების გამოყენება EXCEL-ში

აქტიური სამუშაო წიგნისთვის პაროლის დაყენება შეიძლება შემდეგნაირად:
სცადე
// პაროლის დაყენების მცდელობა
Excel.ActiveWorkbook.protect("pass");
გარდა
// მოქმედებები, თუ პაროლის დაყენების მცდელობა ვერ მოხერხდა
დასასრული;

სადაც საშვი არის წიგნისთვის დასაყენებელი პაროლი.

წიგნიდან პაროლის ამოღება მსგავსია, გამოიყენეთ ბრძანება
Excel.ActiveWorkbook.Unprotect("pass");
სადაც საშვი არის წიგნის დასაცავად დაყენებული პაროლი.

Excel-ის სამუშაო წიგნის აქტიური ფურცლისთვის პაროლის დაყენება და წაშლა ხდება ბრძანებების გამოყენებით
Excel.ActiveSheet.protect("pass"); // პაროლის დაყენება
Excel.ActiveSheet.Unprotect("pass"); // პაროლის ამოღება

სადაც საშვი არის წიგნის დასაცავად დაყენებული პაროლი.

დამხმარე ოპერაციები EXCEL-ში

რიგების წაშლა shift up-ით:
Excel.Rows["5:15"].აირჩიეთ;
Excel.Selection.Delete;

ამ მოქმედებების შესრულებისას 5-დან 15-მდე სტრიქონები წაიშლება.

დააყენეთ გაყინვის ადგილი Excel-ის აქტიურ სამუშაო ფურცელზე
// გაყინეთ ტერიტორია, თუ ის დაყენებულია
Excel.ActiveWindow.FreezePanes:=False;
// აირჩიეთ სასურველი უჯრედი, ამ შემთხვევაში D3
Excel.Range["D3"].Select;
// დააყენეთ გასაყინავი ტერიტორია
Excel.ActiveWindow.FreezePanes:=True;



გაქვთ შეკითხვები?

შეატყობინეთ შეცდომას

ტექსტი, რომელიც გაეგზავნება ჩვენს რედაქტორებს: