Thread In Excel schreiben
(6 answers)
Opened by Lauvia at 2013-09-23 14:00
hallo zusammen,
ich möchte in Excel Spalten ab bestimmter Zeile schreiben. Skript zum Öffnen bestehender Excel-Datei habe ich schon. was möchte ich genau machen: ich habe 6 Variablen die in Excel Spalten eingetragen werden müssen. Ab einer bestimmten Zeile (hier Zeile 14, siehe Excel-Anhang) möchte ich für verschiedene Werte der Variablen damit anfangen. Solange die Variable z.B. SIGNAL NAME einen neuen Wert annimmt wird dieser in die nächste Zeile eingetragen. Wer weiss, wie ich da machen könnte? hier mein Code: Code (perl): (dl
)
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 use warnings; use strict; use Cwd; use OLE; use Win32::OLE::Const "Microsoft Excel"; &init; sub init { my $directory = &getcwd; &edit_excel ( "$directory/TemplateAuswertung.xlsx" ); } sub edit_excel { my ( $xl_report ) = @_; my ( $excel, $workbook, $sheet, $row ); $excel = CreateObject OLE 'Excel.Application'; $excel -> {Visible} = 1; $workbook = $excel -> Workbooks -> Open ( "$xl_report" ) or &terminate ( "open $xl_report" ); #$sheet = $workbook -> Worksheets -> Add ( { After => $workbook -> Worksheets ( $workbook -> Worksheets -> {Count} ) } ); $sheet = $workbook -> Worksheets(1); $sheet -> Activate(); $sheet -> Range ( "A:B" ) -> Font -> {size} = 10; $sheet -> Range ( "C:D" ) -> Font -> {Size} = 10; $sheet -> Range ( "A:D" ) -> Font -> {Bold} = "True"; $sheet -> Range ( "A:D" ) -> {HorizontalAlignment} = xlHAlignLeft; $sheet -> Range ( "C11" ) -> {HorizontalAlignment} = xlHAlignCenter; $sheet -> Range ( "C13" ) -> {HorizontalAlignment} = xlHAlignCenter; $sheet -> Range ( "D11" ) -> {HorizontalAlignment} = xlHAlignCenter; $sheet -> Range ( "D13" ) -> {HorizontalAlignment} = xlHAlignCenter; #$sheet -> Range ( "A18" ) -> {Value} = "CAN Signal"; #$sheet -> Range ( "B18" ) -> {Value} = "PASSED"; #$sheet -> Range ( "C18" ) -> {Value} = "No Comment"; #$sheet -> Range ( "D18" ) -> {Value} = "RAS"; $sheet -> Range ( "A2" ) -> Activate; $excel -> ActiveWindow -> {FreezePanes} = "True"; #$sheet -> {Name} = "Test Report" . $workbook -> Worksheets -> {Count}; $excel -> {DisplayAlerts} = 0; # $workbook -> SaveAs ( "$xl_report" ); $workbook -> Save; $workbook -> Close; #$excel -> Quit; } sub terminate { print "\a\a\nCould not @_ for the following reason:\n\n$!\n"; print "This program will now terminate. Press <ENTER> to exit."; <STDIN>; exit; } modedit Editiert von pq: 2 Ausrufezeichen aus Titel entfernt, sowas steht für "anschreien" Anhänge Last edited: 2013-09-23 14:03:02 +0200 (CEST) |