AGB  ·  Datenschutz  ·  Impressum  







Anmelden
Nützliche Links
Registrieren
Zurück Delphi-PRAXiS Programmierung allgemein Programmieren allgemein WORD: Tabellenspaltenbreite automatisch setzen...
Thema durchsuchen
Ansicht
Themen-Optionen

WORD: Tabellenspaltenbreite automatisch setzen...

Ein Thema von alzaimar · begonnen am 25. Mai 2006 · letzter Beitrag vom 25. Mai 2006
Antwort Antwort
alzaimar
(Moderator)

Registriert seit: 6. Mai 2005
Ort: Berlin
4.956 Beiträge
 
Delphi 2007 Enterprise
 
#1

WORD: Tabellenspaltenbreite automatisch setzen...

  Alt 25. Mai 2006, 11:32
Hi

bitte nicht peitschen . Ja, ich muss eine DB-Doku in Word schreiben.

Es handelt sich nur um 100 Tabellen, die ich einzeln formatieren muss. Ich will aber auch, das die Spalten der Tabellen jeweils gleich breit sind. Die 1.Spalte aller Tabellen soll z.B. immer 2 cm breit sein, die 2.Spalte immer 2,5 cm, und die 3.Spalte immer 8 cm.

Wie mach ich das? Ob ich das mit Delphi per OLE mache, oder als Word-VBA-Script, ist mir egal, aber wie kann ich mir die sch**** Arbeit ersparen?

Und sag mir keiner: Nimm doch LaTeX (denn damit wäre das ja kein Problem).

Danke und schönen Vatertag
"Wenn ist das Nunstruck git und Slotermeyer? Ja! Beiherhund das Oder die Flipperwaldt gersput!"
(Monty Python "Joke Warefare")
  Mit Zitat antworten Zitat
Benutzerbild von toms
toms
(CodeLib-Manager)

Registriert seit: 10. Jun 2002
4.648 Beiträge
 
Delphi XE Professional
 
#2

Re: WORD: Tabellenspaltenbreite automatisch setzen...

  Alt 25. Mai 2006, 11:39
Hallo,

ungetestet etwa in dieser Art:

Delphi-Quellcode:
uses
  ComObj;

procedure TForm1.Button1Click(Sender: TObject);
const
  FILE_WORD_DOC = 'C:\TestDoc.doc';
  wdDoNotSaveChanges = 0;
var
  MSWord, Table, SaveChanges: OLEVariant;
begin
  try
    MSWord := CreateOleObject('Word.Application');
  except
    // Error....
    Exit;
  end;
  // Word anzeigen
  try
    MSWord.Visible := True;
    MSWord.Documents.Open(FILE_WORD_DOC);
    // 1 Tabelle auswählen...
    Table := MSWord.ActiveDocument.Tables.Item(1);
    try
      // Für Spalte 1 Breite setzen
      Table.Columns.Item(1).SetWidth(20, 0);
      // der 2. Param. kann laut VBA Help folgende Konstanten
      // einnehmen:
      {
        wdAdjustFirstColumn = 2
        wdAdjustNone = 0
        wdAdjustProportional = 1
        wdAdjustSameWidth = 3
      }

    except
    end;
    //..
  finally
   // MSWord.ActiveDocument.Close(wdDoNotSaveChanges);
   // MSWord.Quit;
     MSWord := nil;
     Table := nil;
  end;
end;
Thomas
  Mit Zitat antworten Zitat
alzaimar
(Moderator)

Registriert seit: 6. Mai 2005
Ort: Berlin
4.956 Beiträge
 
Delphi 2007 Enterprise
 
#3

Re: WORD: Tabellenspaltenbreite automatisch setzen...

  Alt 25. Mai 2006, 12:50
Super! Danke!

Die Einheit bei 'SetWidth' ist zwar etwas komisch (mm*2,7), aber was solls. Jetzt kann ich den Rest des Tages mit meinen Kindern verbringen!

und toms auch!
"Wenn ist das Nunstruck git und Slotermeyer? Ja! Beiherhund das Oder die Flipperwaldt gersput!"
(Monty Python "Joke Warefare")
  Mit Zitat antworten Zitat
Keldorn

Registriert seit: 6. Mär 2003
Ort: Meißen
876 Beiträge
 
Delphi 10.1 Berlin Professional
 
#4

Re: WORD: Tabellenspaltenbreite automatisch setzen...

  Alt 25. Mai 2006, 13:12
Hallo, Word will da immer "Punkt"-Angaben. Zum Umrechnen kannst du z.B. (MSword).CentimetersToPoints nutzen, liest sich besser und du kannst richtig cm angeben.

Mfg Frank

Lükes Grundlage der Programmierung:
Es wird nicht funktionieren
(Murphy)
  Mit Zitat antworten Zitat
alzaimar
(Moderator)

Registriert seit: 6. Mai 2005
Ort: Berlin
4.956 Beiträge
 
Delphi 2007 Enterprise
 
#5

Re: WORD: Tabellenspaltenbreite automatisch setzen...

  Alt 25. Mai 2006, 17:33
Ah, dann ist der Faktor 2.83, weil 72pt pro inch und 25.4 mm pro inch.

Alles klar.
"Wenn ist das Nunstruck git und Slotermeyer? Ja! Beiherhund das Oder die Flipperwaldt gersput!"
(Monty Python "Joke Warefare")
  Mit Zitat antworten Zitat
Antwort Antwort


Forumregeln

Es ist dir nicht erlaubt, neue Themen zu verfassen.
Es ist dir nicht erlaubt, auf Beiträge zu antworten.
Es ist dir nicht erlaubt, Anhänge hochzuladen.
Es ist dir nicht erlaubt, deine Beiträge zu bearbeiten.

BB-Code ist an.
Smileys sind an.
[IMG] Code ist an.
HTML-Code ist aus.
Trackbacks are an
Pingbacks are an
Refbacks are aus

Gehe zu:

Impressum · AGB · Datenschutz · Nach oben
Alle Zeitangaben in WEZ +1. Es ist jetzt 17:52 Uhr.
Powered by vBulletin® Copyright ©2000 - 2024, Jelsoft Enterprises Ltd.
LinkBacks Enabled by vBSEO © 2011, Crawlability, Inc.
Delphi-PRAXiS (c) 2002 - 2023 by Daniel R. Wolf, 2024 by Thomas Breitkreuz