Mit win32com in Excel Spalte erzeugen?

Wenn du dir nicht sicher bist, in welchem der anderen Foren du die Frage stellen sollst, dann bist du hier im Forum für allgemeine Fragen sicher richtig.
Antworten
gooogle
User
Beiträge: 66
Registriert: Freitag 15. Mai 2009, 19:13
Wohnort: burghausen

Hallo

Ist es möglich mit dem win32com in Excel eine neue Spalte zu erzeugen?
Mal angenommen ich möchte die Spalte nach "B" erzeugen, wie würde das gehen?

Grusss und danke
fff gh
Zap
User
Beiträge: 533
Registriert: Freitag 13. Oktober 2006, 10:56

Muss es win32com sein?
Wenn du hier im Forum nach excel suchst, solltest du auch andere Möglichkeiten finden die (wahrscheinlich) besser zu benutzen sind.
Benutzeravatar
HWK
User
Beiträge: 1295
Registriert: Mittwoch 7. Juni 2006, 20:44

Meinst Du so etwas?

Code: Alles auswählen

import os
import win32com.client

excel_app = win32com.client.dynamic.Dispatch('Excel.Application')
excel_workbook1 = excel_app.Workbooks.Open(os.path.abspath('Mappe1.xls'))
excel_workbook1.Worksheets('Tabelle1').Columns('C:C').\
    Insert(Shift=win32com.client.constants.xlToRight)
excel_workbook1.Close(SaveChanges=True)
del excel_workbook1
excel_app.Quit()
del excel_app
MfG
HWK
gooogle
User
Beiträge: 66
Registriert: Freitag 15. Mai 2009, 19:13
Wohnort: burghausen

HAllo

Ja, das ist genau was ich wollte. Vielen Dank. Leider findet man zu diesen Features keine Dokumentation. Zumindest fand ich nichts.
Ich denke das Ausblenden einer Spalte ist auch möglich?

Grüsse
fff gh
Benutzeravatar
HWK
User
Beiträge: 1295
Registriert: Mittwoch 7. Juni 2006, 20:44

Ja, natürlich. Und zwar mit:

Code: Alles auswählen

Delete(Shift=win32com.client.constants.xlToLeft)
Dokumentation braucht man normalerweise auch nicht. Ich zeichne mir immer das gewünschte mit dem Makrorekorder von Excel auf und passe dann das Makro an Python an.
MfG
HWK
karolus
User
Beiträge: 145
Registriert: Samstag 22. August 2009, 22:34

Hallo
Der OP fragt nach "Ausblenden einer Spalte" wird mit ..

Code: Alles auswählen

Delete(Shift=win32com.client.constants.xlToLeft)
..nicht gelöscht?

Gruß Karo
gooogle
User
Beiträge: 66
Registriert: Freitag 15. Mai 2009, 19:13
Wohnort: burghausen

Hallo

ja das stimmt. Mit Delete löscht man die Spalte. Aber ich möchte sie nur ausblenden ;)

Habe es mit dem Macro Recorder versucht, aber was ich bekomme ist sowas:

Code: Alles auswählen

Sub Makro1888()
'
' Makro1888 Makro
' Makro am 02.02.2010 von i aufgezeichnet
'

'
    Selection.EntireColumn.Hidden = True
End Sub

Wüsste nicht wie ich auf die Python Schreibweise komme?

Grüssse
fff gh
gooogle
User
Beiträge: 66
Registriert: Freitag 15. Mai 2009, 19:13
Wohnort: burghausen

Hallo

habe es gefunden:

Code: Alles auswählen


excel_workbook.Worksheets('Sheet1').Columns('A:A').EntireColumn.Hidden=True;


Grüsse :D
fff gh
ms4py
User
Beiträge: 1178
Registriert: Montag 19. Januar 2009, 09:37

Als Alternative gibt es noch "comtypes".
Ist deutlich eleganter als das win32-Modul.
gooogle
User
Beiträge: 66
Registriert: Freitag 15. Mai 2009, 19:13
Wohnort: burghausen

Muss man dafür das Modul comtypes installieren oder ist es in Py. 2.5 schon enthalten?

Grüsse
fff gh
Dav1d
User
Beiträge: 1437
Registriert: Donnerstag 30. Juli 2009, 12:03
Kontaktdaten:

Probieren geht über Studieren!

und gooogle würde auch helfen
the more they change the more they stay the same
gooogle
User
Beiträge: 66
Registriert: Freitag 15. Mai 2009, 19:13
Wohnort: burghausen

Ja goooogle hat geholfen, danke ;)

ich versuche die ganze zeit mit dem befehl:


Worksheet.Cells(4,1).HorizontalAlignment=constants.xlCenter

eine zelle zu zentrieren. aber da tut sich nix :( komischerweise gibt es auch keine fehlermeldung?
Weiss jemand ob das so richtig geschrieben ist?
fff gh
Benutzeravatar
HWK
User
Beiträge: 1295
Registriert: Mittwoch 7. Juni 2006, 20:44

Also bei mir funktioniert das.

Code: Alles auswählen

excel_workbook1.Worksheets('Tabelle1').Cells(1, 4).HorizontalAlignment = win32com.client.constants.xlCenter
MfG
HWK
gooogle
User
Beiträge: 66
Registriert: Freitag 15. Mai 2009, 19:13
Wohnort: burghausen

ja jetzt gehts
fff gh
Antworten