Excel Export in vorhandenes Template

28. Juni 2011 12:48

Guten Tag,

ich habe ein kleines Problem bei einer Programmierung. Und zwar würde ich gerne Daten aus der Produktion in eine Excel Vorlage schreiben.
Dazu habe ich Platzhalter definiert (z.B. "#datecode#"), diese werden irgendwo in der Vorlage definiert. Dann arbeite ich mit Excel Buffer und
lese die Vorlage in die ExcelBuffer Tabelle.Gleich darauf überprüfe ich, Zeile für Zeile in der Tabelle ob "#datecode#" drin steht und ersetzte dies dann, durch den aus Navision kommenden Datecode.
Allerdings geht dabei die komplette Formatierung verloren, wenn ich mit Excel Buffer ein neues Dokument erstelle.

Wie könnte man das Problem lösen?


Mit freundlichen Grüßen
Dannoe

Re: Excel Export in vorhandenes Template

28. Juni 2011 13:36

Wenn Du die Excelbuffer benutzt, dann erzeugst Du eine neue Excel-Datei. Oder lädst Du die Vorlage vorher in die Automation?

Re: Excel Export in vorhandenes Template

28. Juni 2011 13:50

Erst lese ich die formatierte Vorlage mit dem Excel Buffer ein.
Dann verarbeite ich sie ("#datecode#" in M0312 z.B.)
Und dann schreib ich mit dem bearbeiteten Excel Buffer ein neues Excel Dokument.

Re: Excel Export in vorhandenes Template

28. Juni 2011 14:32

Du liest nur die Daten ein, nicht das Format. Von daher funktioniert das so nicht.
Damit das Format beibehalten wird, müsstest Du es per manueller Funktion in die formatierte Vorlage wieder einfügen.
Dafür müsstest Du aber wohl jede Zelle erst aus der Vorlage holen und dann den Wert ändern, damit die Formatierung nicht verloren geht.

Re: Excel Export in vorhandenes Template

28. Juni 2011 15:53

Gibt es denn eine Funktion um die komplette Formatierung einer Datei auf eine andere zu setzen? TableStyle oder irgendetwas in die Richtung?

Re: Excel Export in vorhandenes Template

28. Juni 2011 16:04

Alles was ich dir anbieten kann ist die direkte Formatierung in Navision.
ExcelRowNo = Integer
Sheet = Worksheet
Code:
Sheet.Range(A + FORMAT(ExcelRowNo)).NumberFormat := '@';
Sheet.Range(A + FORMAT(ExcelRowNo)).Interior.ColorIndex := 34;

Mit diesem Code formatierst du das gewählte Feld ersteinmal von "Standard" auf "Text", das ist gerade bei führenden Nullen unumgänglich.
Anschliessend weisst du dem Tabellenfeld auch noch eine andere Füllfarbe zu.
34 war glaube ich Orange ;)

Das nur so als Beispiele, wenn du dir das einmal näher anschaust, wirst du feststellen das du nahezu alles an Formatierung so vornehmen kannst.

Re: Excel Export in vorhandenes Template

28. Juni 2011 16:07

Das bringt mich nicht viel weiter, aber trotzdem Danke. Sonst müsste ich jetzt alle Befehle für das Formatieren setzen. (Striche, Strichstärke, Schriftart, Schriftgröße, Fett, Kursiv, usw...)

Falls jemand doch einen Befehl kennt um die ganze Formatierung 1:1 zu übernehmen, nehm ich ihn gerne :)




Mit freundlichen Grüßen
Dannoe

Re: Excel Export in vorhandenes Template

28. Juni 2011 16:18

Schau dir doch einmal das hier an:
viewtopic.php?f=33&t=2499&p=7299&hilit=xlt#p7299

Ich denke das passt auf dein Problem.