Hallo,
ich arbeite gerade an einem Projekt und erstelle Excel-Tabellen mit COMate. Jetzt habe ich dazu einige Fragen:
1) Wie kann ich beim Erstellen einer Excel-Tabelle gleich einen Dateinamen vorgeben?
2) Wie kann ich eine Datei im Querformat erzeugen und die Ränder setzen?
3) Wie kann ich eine Zelle umranden?
4) Gibt es irgendwo eine Übersicht mit erweiterten Funktionen (Zellen verbinden etc.)
Vielen Dank.
COMate und Excel - einige Fragen
Generell sollte du solche Sachen erstmal mit "Makro aufzeichnen" in Excel machen. Dann kann man die Codes recht einfach nach COMate transportieren. Alle deine Dinge kann man realisieren, leider fehlt mir jetzt aber die Zeit.
1. Einen Dateinamen kann man direkt nicht mitgeben. Das regelt man darüber, das man die Datei gleich zu beginn mit SaveAs speichert.
2.) Querformat:
Ränder setzen:
4.
1. Einen Dateinamen kann man direkt nicht mitgeben. Das regelt man darüber, das man die Datei gleich zu beginn mit SaveAs speichert.
2.) Querformat:
Code: Alles auswählen
ActiveSheet\PageSetup\Orientation = 2 '2 für xlLandscape
Code: Alles auswählen
ActiveSheet\PageSetup\LeftMargin = Application\InchesToPoints(1)
ActiveSheet\PageSetup\RightMargin = Application\InchesToPoints(1)
ActiveSheet\PageSetup\TopMargin = Application\InchesToPoints(1)
ActiveSheet\PageSetup\BottomMargin = Application\InchesToPoints(1)
ActiveSheet\PageSetup\HeaderMargin = Application\InchesToPoints(1)
ActiveSheet\PageSetup\FooterMargin = Application\InchesToPoints(1)
Code: Alles auswählen
Range('D12:E12')\Merge
- Falko
- Admin
- Beiträge: 3535
- Registriert: 29.08.2004 11:27
- Computerausstattung: PC: MSI-Z590-GC; 32GB-DDR4, ICore9; 2TB M2 + 2x3TB-SATA2 HDD; Intel ICore9 @ 3600MHZ (Win11 Pro. 64-Bit),
Acer Aspire E15 (Win11 Home X64). Purebasic LTS 6.11b1
HP255G8 Notebook @AMD Ryzen 5 5500U with Radeon Graphics 2.10 GHz 3.4GHz, 32GB_RAM, 3TB_SSD (Win11 Pro 64-Bit) - Kontaktdaten:
>>>1. Einen Dateinamen kann man direkt nicht mitgeben. Das regelt man darüber, das man die Datei gleich zu beginn mit SaveAs speichert.
Soweit ich das gestern schon probiert hatte, braucht man das nicht am
Anfang machen, sondern zum Zeitpunkt des Speicherns mit SaveAS.
Da generell beim öffnen einer neuen Excel-Mappe z.B. Mappe1.xls
vorgebeben wird. Darum kann man die Funktion ... Open ... weglassen,
wenn man wie hier im Beispiel eine Neue ExcelMappe mit eigenen
Tabellennamen erstellen möchte, wo auch noch was eingetragen wird.
Geht prima
. Damit die Mappe ins aktuelle Verzeichnis
erstellt wird, sollte man diesen Source compilieren und dann im Verzeichnis die Exe ausführen.
[Edit] Zur Umrandung einer Zelle, würde ich empfehlen, folgende Procedure SetBorders() in comate anzupassen.
Komplette Beispiele zum Disphelper und Excel findet man hier:
http://www.purebasic.fr/german/viewtopi ... ight=excel
[/Edit]
Gruß Falko
Soweit ich das gestern schon probiert hatte, braucht man das nicht am
Anfang machen, sondern zum Zeitpunkt des Speicherns mit SaveAS.
Da generell beim öffnen einer neuen Excel-Mappe z.B. Mappe1.xls
vorgebeben wird. Darum kann man die Funktion ... Open ... weglassen,
wenn man wie hier im Beispiel eine Neue ExcelMappe mit eigenen
Tabellennamen erstellen möchte, wo auch noch was eingetragen wird.
Geht prima

erstellt wird, sollte man diesen Source compilieren und dann im Verzeichnis die Exe ausführen.
Code: Alles auswählen
#xlUp=-4162
IncludePath #PB_Compiler_Home+"comate_pb4-3"
XIncludeFile "COMate.pbi"
Pfad.s=GetCurrentDirectory()+"Meine neue Excel-Mappe.xls"; Dateiname mit Path-Vorgabe
Debug Pfad
Define.COMateObject ExcelObject, WorkBook,WorkSheet,myRange,answer
Define myRange.ComateObject
ExcelObject = COMate_CreateObject("Excel.Application")
If ExcelObject
ExcelObject\SetProperty("Visible = #False"); Excel im Hintergrund. Kann man nur im Taskmanager sehen
WorkBook = ExcelObject\GetObjectProperty("Workbooks\Add"); fügt eine Tabelle hinzu
ExcelObject\SetProperty("WorkSheets(1)\Name = 'ErsteTabelle'"); Tabelle1 mit Namen verzeichnen
ExcelObject\SetProperty("Cells(1,1) = 'Hello'"); schreibe Hello in Zelle A1
ExcelObject\SetProperty("Cells(1,2) = 'from'") ; schreibe from in Zelle B1
ExcelObject\SetProperty("Cells(1,3) = 'COMate!'");schreibe COMate in Zeile C1
ExcelObject\SetProperty("Cells(" + Str(intRow) + ",14) = "+ Cell6$ + "")
ExcelObject\SetProperty("Application\DisplayAlerts = #False") ; Excel-Alerts vor dem Speichern und Beenden ausschalten
ExcelObject\Invoke("ActiveWorkbook\SaveAs('"+Pfad+"')") ; hier wird der Dateiname nach füllen der Tabelle mitgegeben
ExcelObject\Invoke("ActiveWorkbook\Close"); Schließe aktive Tabelle
ExcelObject\Invoke("Workbooks\Close"); Schließe Excelmappe
ExcelObject\Invoke("Quit()")
ExcelObject\SetProperty("Application\DisplayAlerts = #True") ; Excel-Alerts wieder aktivieren
ExcelObject\Release(); Hiermit immer das Objekt zuletzt freigeben
Else
MessageRequester("COMate -Excel demo", "Couldn't create the application object!")
EndIf
Komplette Beispiele zum Disphelper und Excel findet man hier:
http://www.purebasic.fr/german/viewtopi ... ight=excel
[/Edit]
Gruß Falko
- Falko
- Admin
- Beiträge: 3535
- Registriert: 29.08.2004 11:27
- Computerausstattung: PC: MSI-Z590-GC; 32GB-DDR4, ICore9; 2TB M2 + 2x3TB-SATA2 HDD; Intel ICore9 @ 3600MHZ (Win11 Pro. 64-Bit),
Acer Aspire E15 (Win11 Home X64). Purebasic LTS 6.11b1
HP255G8 Notebook @AMD Ryzen 5 5500U with Radeon Graphics 2.10 GHz 3.4GHz, 32GB_RAM, 3TB_SSD (Win11 Pro 64-Bit) - Kontaktdaten:
Zu Punkt 3, Zelle oder Zeile Umranden habe allgemein die alten
Disphelper-ExcelFunktionen , soweit wie ich das nach Comate anpassen
konnte, umgestellt.
Ich hoffe das hiermit viele Fragen beantwortet werden können
http://www.purebasic.fr/german/viewtopi ... 466#239466
Gruß Falko
Disphelper-ExcelFunktionen , soweit wie ich das nach Comate anpassen
konnte, umgestellt.
Ich hoffe das hiermit viele Fragen beantwortet werden können

http://www.purebasic.fr/german/viewtopi ... 466#239466
Gruß Falko