Thread In Excel schreiben (6 answers)
Opened by Lauvia at 2013-09-23 14:00

Lauvia
 2013-09-23 14:00
#170517 #170517
User since
2013-09-05
42 Artikel
BenutzerIn
[default_avatar]
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
application/zip
TemplateAuswertung.xlsx

Last edited: 2013-09-23 14:03:02 +0200 (CEST)

View full thread In Excel schreiben