Registriert seit: 16. Aug 2004
165 Beiträge
Delphi 7 Enterprise
|
AW: Word Tabelle sortieren mit Delphi
22. Aug 2011, 22:23
So geht's z.B. (siehe Anweisung " WordTabelle.Sort()":
Code:
uses COMObj;
const
wdBorderTop = -1;
wdBorderLeft = -2;
wdBorderBottom = -3;
wdBorderRight = -4;
wdLineStyleNone = 0;
wdSortFieldNumeric = 1;
wdSortOrderAscending = 0;
procedure TForm1.Button1Click(Sender: TObject);
var
Doc: OleVariant;
FieldNumber: OleVariant;
OpenAsTemplate: OleVariant;
SaveChanges: OleVariant;
SortFieldType: OleVariant;
SortOrder: OleVariant;
Template: Olevariant;
WordTabelle: OleVariant;
rows: word;
cols: word;
i: integer;
begin
WordApp := CreateOleObject('Word.Application');
try
Template := 'Normal';
OpenAsTemplate := False;
Doc := WordApp.Documents;
Doc := Doc.Add(Template, OpenAsTemplate, EmptyParam, EmptyParam);
WordApp.Visible := True;
rows := 10;
cols := 5;
//Tabelle erzeugen mit 10 Zeilen und 5 Spalten
WordTabelle := doc.Tables.Add(WordApp.selection.range, rows, cols, emptyParam, emptyParam);
// links, rechts, oben, unten ohne Rahmen
WordTabelle.borders.item(wdBorderLeft).LineStyle := wdLineStyleNone;
WordTabelle.Borders.item(wdBorderRight).LineStyle := wdLineStyleNone;
WordTabelle.Borders.item(wdBorderTop).LineStyle := wdLineStyleNone;
WordTabelle.Borders.item(wdBorderBottom).LineStyle := wdLineStyleNone;
// 1.Spalte der Tabelle über alle Reihen mit Werten füllen
randomize;
for i := 1 to rows do
WordTabelle.cell(i, 1).range.text := format('%d', [random(99) + 1]);
// 10 Sek warten, um orginale Tabelleneinträge zu betrachten
sleep(5000);
WordTabelle.Sort(FieldNumber := 'Spalte1', SortFieldType := wdSortFieldNumeric,
SortOrder := wdSortOrderAscending);
// 10 Sek warten, um die nach Spalte 1 sortierte Tabelle zu betrachten
sleep(5000);
finally
WordApp.Quit; // oder auch noch nicht
WordApp := UnAssigned;
end;
end;
Edit: Sorry, sleep(5000) sind natürlich nur 5 (und nicht 10) Sekunden Wartezeit
Geändert von ASM (22. Aug 2011 um 22:47 Uhr)
Grund: siehe Erklärung
|
|
Zitat
|