Cum să adăugați în mod programat cuvânt într-o foaie de calcul

Cum se adaugă o foaie de calcul în Word?

Și din nou salut.

Ajutați pzh să rezolve această problemă. Din program, creez un document Word-cue, în care mai întâi este un text mic și după el trebuie să introduc un tabel cu datele. Deci, după o lungă căutare, am găsit doar cum să inseri o masă pe o pagină goală și trebuie să o introduc după o linie.






Spune-mi cum te poate face asta?

Un exemplu de introducere a unui tabel, paragrafe

procedura TForm1.Button1Click (expeditor: TObject);
începe
// dacă titlul "Ieșire", închideți programul
dacă button1.caption = "Exit" atunci
începe
Application.Terminate;
ieșire
capăt
// diferit (la prima pornire, când avem titlul "Start")
// redenumiți titlul la "Ieșire"
altceva button1.caption: = "Ieșire";

panel1.Visible: = true;
// creați o copie a Cuvântului
WordApp: = CoApplication_Create;
// face vizibil
WordApp.Visible: = adevărat;
// template
șablon: = "Normal";
// creați un șablon
OpenAsTemplate: = false;
// ceva asemănător operatorului, puteți, de asemenea, contacta direct
Documente: = WordApp.Documents;
// adăugați documentul
Doc: = Docs.Add (șablon, OpenAsTemplate);

// selectați toate
ARange: = Doc.Range (EmptyParam, EmptyParam);
// serie de paragrafe
pars: = doc.Paragrafe;
// variabilă - parametru
șablon: = aranjament;
// nou alineat
par: = pars.Add (șablon);
// culoarea este verde
par.Range.Font.ColorIndex: = 11;
// inserați textul
par.Range.InsertBefore ("Bună ziua");
// variabilă - parametru
șablon: = par.Range;
// nou paragraf, astfel încât tabelul să nu frece textul
par: = pars.Add (șablon);
// color negru
par.Range.Font.ColorIndex: = 0;
// inserați textul
par.Range.InsertBefore ("Trecerea la program, puteți schimba programabil textul celulelor!");
// variabilă - parametru
șablon: = par.Range;
// nou paragraf, astfel încât tabelul să nu frece textul
par: = pars.Add (șablon);
// selectați paragraful






arange: = par.Range;

// font - bold
ARange.Font.Bold: = 1;
// font - scris de mână
ARange.Font.Italic: = 1;
// obțineți o serie de tabele
tabele: = aRange.Tables;
// adăugați un nou tabel de la 5 la 5
tabl: = tabls.Add (aranjament, 5,5);
// în buclă
pentru i: = 1 până la 5 nu
// setați valoarea celulelor
tabl.Cell (i, 1) .Range.Text: = inttostr (i);

Acțiunile finale, salvarea unui fișier

procedura TForm1.FormDestroy (expeditor: TObject);
var
// pentru parametri
SalvațiChanguri: olevariant;
începe
// dacă Word nu este închis
dacă nu începe VarIsEmpty (WordApp)
<а можно сохранить автоматом:
// numele fișierului în fereastra ole
template: = "Name.doc";
// dacă nu este salvat, atunci
dacă doc.Saved = false atunci
// salvați
Doc.SaveAs (șablon, EmptyParam, EmptyParam, EmptyParam, EmptyParam, EmptyParam, EmptyParam, EmptyParam, EmptyParam, EmptyParam, EmptyParam);

pe scurt, scrieți numele obiectului, puneți un punct și apăsați
"ctrl" + "" și studiați metodele existente și sv-va
>
// nu salvați modificările
SaveChanges: = false;
// închideți mai întâi documentul
Doc.Close (SalvațiChanguri, EmptyParam, EmptyParam);
// și apoi și Cuvântul
WordApp.Quit (SaveChanges, EmptyParam, EmptyParam)
se încheie;

Da, codul nu este al meu.
Nu-mi amintesc sursa în care l-am turnat.

Pentru cod, bineînțeles mulțumesc, lucru bun.
Am încercat să fac acest lucru recent, dar tot timpul am obținut această eroare:

Metoda "Range" nu este acceptată de obiectul de automatizare

și să fiu cinstit nu știu cum să scap de ea, nu-mi spuneți?

Da, bine?
Și nu încercați așa, dar asta este. Se pare că la prima vedere totul este corect.
Deși nu a fost testat.
Păi, am din nou un cod similar, unde totul este normal. Doar eu nu adaug tabele acolo - am citit și corectat textul în cele existente.

Și, apropo, și în ce loc aveți o greșeală? Pentru ce obiect special nu găsește Range?

Ei bine, nu funcționează în acest fel, variabilele sunt diferite, din nou se introduce textul diferit etc. -)))

Și, de altfel, cu textul I, de asemenea, bine, și inserate și editate, și tot ceea ce am făcut, dar în această operațiune:

și se produce această eroare.

Includerea unei înregistrări a acțiunilor în macrocomanda VBA ajută, de asemenea. Și apoi analizați această macrocomandă.

Dar nu uitați de posibilele diferențe între diferitele versiuni ale birourilor sau puteți rula în funcții nesuportate.

Am fost în regat, am citit-o. Există: cum să creați o tabelă pentru întreg (și o foaie curată), cum să o editați, cum să transformați un text într-un anumit fel într-un anumit fel (de altfel, și cum să îl editați, nu este spus). Apropo, în răspunsul pe care KSergey la descris același lucru, este mai ușor de înțeles. Dar nicăieri nu există un răspuns la întrebarea mea.

const
wdAutoFitFixed = 0;
wdWord9TableBehavior = 1;
.

WordApp.ActiveDocument.Tables.Add (Range: = WordApp.Selection.Range, NumRows: = 5, NumColumns: = 5, DefaultTableBehavior: = wdWord9TableBehavior, AutoFitBehavior: = wdAutoFitFixed);







Articole similare

Trimiteți-le prietenilor: