Guten Morgen,
ich hab ein Python Script geschrieben, welches mir ein Excel-Protokoll erstellt, was auch ohne Probleme funktioniert.
Allerdings ist es nun so, dass die Spaltenbreite sich nicht dem Inhalt einer Zelle anpasst, sondern alle Spalten bleiben auf den Standardwert und man muss dann von Hand die Spaltenbreiten anpassen....was natürlich unschön ist.
Kann mir jemand sagen, wie bzw. ob das überhaupt funktioniert?
Gruß
*EDIT*
Ok, ich weis mitlerweile, dass man mit .ColumnWidth=20 die Spaltenbreite z.B. auf den festen Wert 20 setzen kann. Aber wie kann ich quasi sagen ColumnWidth=AUTOBREITE, also dass er es dem längsten Inhalt einer Zelle anpasst?
Spaltenbreite bei Excel-Datei
Hi BlackJack,
also man kann ja in Excel zwischen zwei Spalten einen Doppelklick machen, also z.B. zwischen der A und B - Spalte, dann wird automatisch die Spaltenbreite angepasst....
Oder auch unter Format...Spalte...Optimale Breite festlegen
Dafür müssen halt Spalten markiert werden.
also man kann ja in Excel zwischen zwei Spalten einen Doppelklick machen, also z.B. zwischen der A und B - Spalte, dann wird automatisch die Spaltenbreite angepasst....
Oder auch unter Format...Spalte...Optimale Breite festlegen
Dafür müssen halt Spalten markiert werden.
So würde die Breite für die Spalten A bis C optimal eingestellt:MfG
HWK
Code: Alles auswählen
Columns("A:C").Select
Selection.Columns.AutoFit
HWK
Hallo HWK,
das funkioniert leider noch nicht so ganz.
Also "worksheet" ist zum Beispiel mein aktuelles excel-Blatt.
Muss es dann so heissen:
?? Das hab ich probiert, geht aber nciht...
das funkioniert leider noch nicht so ganz.
Also "worksheet" ist zum Beispiel mein aktuelles excel-Blatt.
Muss es dann so heissen:
Code: Alles auswählen
worksheet.Columns("A:C").Select
worksheet.Selection.Columns.AutoFit
So vielleicht? In Tabelle1 von Mappe1 Spalten A bis C optimieren:Hierbei handelt es sich aber um VBA-Code. Für den Zugriff über die COM-Schnittstelle aus Python musst Du den Code entsprechend anpassen. Ein Beispiel dafür findest Du z.B. hier: http://www.python-forum.de/topic-10798.html
Code: Alles auswählen
Windows("Mappe1").Activate
Sheets("Tabelle1").Select
Columns("A:C").Select
Selection.Columns.AutoFit
So müsste es gehen:Das ist jetzt Python-Code, wie man sieht.
MfG
HWK
Code: Alles auswählen
#!/usr/bin/env python
# -*- coding: iso-8859-1 -*-
import os
import win32com.client
excel_app = win32com.client.dynamic.Dispatch('Excel.Application')
excel_workbook = excel_app.Workbooks.Open(os.path.abspath('Mappe1.xls'))
excel_sheet = excel_workbook.Worksheets('Tabelle1')
excel_sheet.Columns('A:C').AutoFit()
del excel_sheet
excel_workbook.Close()
del excel_workbook
excel_app.Quit()
del excel_app
MfG
HWK
Hi,
gerade habe ich auch eine Lösung gefunden und es nun so realisiert:
Vielen Dank für die Bemühungen.
Gruß
gerade habe ich auch eine Lösung gefunden und es nun so realisiert:
Code: Alles auswählen
worksheet.Columns("A:ZZ").EntireColumn.AutoFit()
Gruß