Bonjour,
malheureusement je n'ai pas trouvé mon bonheur!
j'ai un template Excel que je dois remplir à l'aide d'un programme Perl.
Pour ce faire, le template possède déjà un format. En ce qui concerne les lignes à remplir, trois sont déjà définies (avec cadre etc).
Le programme dois en fonction du volume du fichier source (à écrire dans Excel) à chaque fois insérer une nouvelle ligne en prenant en compte le quadrillage déjà effectué.
voici mon bout de programme:
Je peux écrire mes lignes, mais insérer une qui prenne en compte la mise en page manuelle (quadrillage) je n'y arrive pas.
Code : Sélectionner tout - Visualiser dans une fenêtre à part
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 use warnings; use Cwd; use OLE; use Win32::OLE::Const "Microsoft Excel"; my $directory = &getcwd; my ( $xl_report ) = "$directory/TemplateAuswertung.xlsx"; 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(1); $sheet -> Activate(); $excel -> ActiveWindow -> {FreezePanes} = "True"; $sheet -> {Name} = "Test Report" . $workbook -> Worksheets -> {Count}; $excel -> {DisplayAlerts} = 0; $row = 16; for ($row = 16; $row <=20; $row++ ) { $sheet->Range( "A" . $row )->{Value} = "data"; #$sheet->Range( '17,1' )->Insert(); } $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; }
Qui a une idée?
Merci!
le template: TemplateAuswertung.xlsx
résulat escompté: Ergebnis.xlsx
Partager