ExcelFunktionen COMatePlus

Hier könnt Ihr gute, von Euch geschriebene Codes posten. Sie müssen auf jeden Fall funktionieren und sollten möglichst effizient, elegant und beispielhaft oder einfach nur cool sein.
Benutzeravatar
HeX0R
Beiträge: 2954
Registriert: 10.09.2004 09:59
Computerausstattung: AMD Ryzen 7 5800X
96Gig Ram
NVIDIA GEFORCE RTX 3060TI/8Gig
Win10 64Bit
G19 Tastatur
2x 24" + 1x27" Monitore
Glorious O Wireless Maus
PB 3.x-PB 6.x
Oculus Quest 2
Kontaktdaten:

Re: ExcelFunktionen COMatePlus

Beitrag von HeX0R »

Wenn Du nur lesen möchtest, kannst Du auch das nehmen:
https://hex0rs.coderbu.de/cgi-bin/hv.cg ... 00&ia=1681

(geht aber nicht mit alten Excel-Dateien, also nur .xlsx oder .xlsm)
Benutzeravatar
jacdelad
Beiträge: 340
Registriert: 03.02.2021 13:39
Computerausstattung: Ryzen 5800X, 108TB Festplatte, 32GB RAM, Radeon 7770OC
Wohnort: Riesa
Kontaktdaten:

Re: ExcelFunktionen COMatePlus

Beitrag von jacdelad »

Vielen Dank, leider benötige ich es wirklich für die alten xls-Dateien.
PureBasic 6.04/XProfan X4a/Embarcadero RAD Studio 11/Perl 5.2/Python 3.10
Windows 11/Ryzen 5800X/32GB RAM/Radeon 7770 OC/3TB SSD/11TB HDD
Synology DS1821+/36GB RAM/130TB
Synology DS920+/20GB RAM/54TB
Synology DS916+ii/8GB RAM/12TB
Benutzeravatar
HeX0R
Beiträge: 2954
Registriert: 10.09.2004 09:59
Computerausstattung: AMD Ryzen 7 5800X
96Gig Ram
NVIDIA GEFORCE RTX 3060TI/8Gig
Win10 64Bit
G19 Tastatur
2x 24" + 1x27" Monitore
Glorious O Wireless Maus
PB 3.x-PB 6.x
Oculus Quest 2
Kontaktdaten:

Re: ExcelFunktionen COMatePlus

Beitrag von HeX0R »

Das geht am einfachsten per ODBC
Benutzeravatar
jacdelad
Beiträge: 340
Registriert: 03.02.2021 13:39
Computerausstattung: Ryzen 5800X, 108TB Festplatte, 32GB RAM, Radeon 7770OC
Wohnort: Riesa
Kontaktdaten:

Re: ExcelFunktionen COMatePlus

Beitrag von jacdelad »

Ich hab's jetzt hingekriegt, siehe englisches Forum. Ich hab auch schon was für Excel per ODBC gefunden, mal sehen was besser geht.
PureBasic 6.04/XProfan X4a/Embarcadero RAD Studio 11/Perl 5.2/Python 3.10
Windows 11/Ryzen 5800X/32GB RAM/Radeon 7770 OC/3TB SSD/11TB HDD
Synology DS1821+/36GB RAM/130TB
Synology DS920+/20GB RAM/54TB
Synology DS916+ii/8GB RAM/12TB
Benutzeravatar
Falko
Admin
Beiträge: 3531
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.0
Kontaktdaten:

Re: ExcelFunktionen COMatePlus

Beitrag von Falko »

Ich habe die Links auf meiner neuen Webseite, dank Hilfe durch meinem Sohn nun
angepasst. 8)
MfG, Falko
Bild
Win10 Pro 64-Bit, PB_5.4,GFA-WinDOS, Powerbasic9.05-Windows, NSBasic/CE, NSBasic/Desktop, NSBasic4APP, EmergenceBasic
pfnuesu
Beiträge: 8
Registriert: 01.05.2022 16:10

Re: ExcelFunktionen COMatePlus

Beitrag von pfnuesu »

Vielen Dank, Falko (und deinem Sohn)
Benutzeravatar
jacdelad
Beiträge: 340
Registriert: 03.02.2021 13:39
Computerausstattung: Ryzen 5800X, 108TB Festplatte, 32GB RAM, Radeon 7770OC
Wohnort: Riesa
Kontaktdaten:

Re: ExcelFunktionen COMatePlus

Beitrag von jacdelad »

Vielen Dank auch von mir. Ich schau mir das an sobald ich Zeit habe.
PureBasic 6.04/XProfan X4a/Embarcadero RAD Studio 11/Perl 5.2/Python 3.10
Windows 11/Ryzen 5800X/32GB RAM/Radeon 7770 OC/3TB SSD/11TB HDD
Synology DS1821+/36GB RAM/130TB
Synology DS920+/20GB RAM/54TB
Synology DS916+ii/8GB RAM/12TB
Benutzeravatar
jacdelad
Beiträge: 340
Registriert: 03.02.2021 13:39
Computerausstattung: Ryzen 5800X, 108TB Festplatte, 32GB RAM, Radeon 7770OC
Wohnort: Riesa
Kontaktdaten:

Re: ExcelFunktionen COMatePlus

Beitrag von jacdelad »

Hallo nochmal,
ich hab schon ein bisschen damit gearbeitet. Dabei sind mir einige Dinge aufgefallen, bzw. eine Frage habe ich:
1. Wie kann ich eine Zeile löschen und die anderen Zeilen darunter entsprechend nach oben verschieben.
2. Das Beispiel funktioniert wunderbar im Debugger, wenn ich aber selbst Hand anlege nicht mehr (egal was ich tue, es kommt "Procedure Stack has been corrupted" in Zeile 1383 von COMatePLUS.pbi). Es funktioniert allerdings tadellos in der fertigen EXE.
3. Ich kann es nicht mit dem C-Compiler compilieren, da fliegen mir die Fehler um die Ohren. Da ich noch nicht wirklich hinter die Interfaces gestiegen bin weiß ich hier auch nicht weiter.
PureBasic 6.04/XProfan X4a/Embarcadero RAD Studio 11/Perl 5.2/Python 3.10
Windows 11/Ryzen 5800X/32GB RAM/Radeon 7770 OC/3TB SSD/11TB HDD
Synology DS1821+/36GB RAM/130TB
Synology DS920+/20GB RAM/54TB
Synology DS916+ii/8GB RAM/12TB
pfnuesu
Beiträge: 8
Registriert: 01.05.2022 16:10

Re: ExcelFunktionen COMatePlus

Beitrag von pfnuesu »

Hallo jacdelad

1) Zeilen löschen kannst Du mit

Code: Alles auswählen

WS1\Invoke("Rows('5:5')\delete")
(kompilierbares Beispiel, Pfad zu COMate muss sicherlich individuell angepasst werden...)

Code: Alles auswählen

EnableExplicit

IncludePath "..\..\..\Plugins\COMatePLUS\"
XIncludeFile "COMatePLUS.pbi"

Define.COMateObject ExcelObject, WorkBook, WS1
Define.i i

ExcelObject = COMate_CreateObject("Excel.Application")

If ExcelObject
  If ExcelObject\SetProperty("Visible = #True") = #S_OK
    WorkBook = ExcelObject\GetObjectProperty("Workbooks\Add")
    Debug "Workbook: " + COMate_GetLastErrorDescription() 
    
    ;; Workbook/Worksheet Objekt ansteuern und sinnlos befüllen
    If WorkBook
      WS1 = WorkBook\GetObjectProperty("ActiveSheet")
      Debug "WS1: " + COMate_GetLastErrorDescription() 
      
      For i = 1 To 133
        WS1\SetProperty("Range('A" + i + "')\value = 'Zeile: " + i + "'")  
      Next i
      Debug "Füllen: " + COMate_GetLastErrorDescription() 
      
      ;; Zeile löschen
      WS1\Invoke("Rows('5:5')\delete") 
      Debug "Zeile löschen: " + COMate_GetLastErrorDescription() 
      
    EndIf ;Workbook
    
  EndIf ;Visible = true
  
  ;Aufräumen
  WS1\Release()
  WorkBook\Release()
  ExcelObject\Release()
Else
  MessageRequester("COMate -Excel demo", "Couldn't create the application object!")
EndIf ;ExcelObject


Zu drittens habe ich folgendes gefunden:
Workaround für COMatePLUS-Fehler mit C-Backend

https://www.purebasic.fr/english/viewto ... 13&t=77612

open COMatePlus.pbi
place the cursor under XIncludeFile "..\includes\COMatePLUS_Residents.pbi"
hit ALT+S (Structure Viewer) and click on the "V" button under Structures
double click on "VARIANT" and click on "Insert copy"
back in the IDE hit ALT+F (Find/Replace)
Search for: VARIANT
Replace with: VARIANT_CFIX
(x) Case Sensitive
(x) Whole Words only
... and hit "Replace All"
Gruss aus Bern
Pfnuesu
Benutzeravatar
jacdelad
Beiträge: 340
Registriert: 03.02.2021 13:39
Computerausstattung: Ryzen 5800X, 108TB Festplatte, 32GB RAM, Radeon 7770OC
Wohnort: Riesa
Kontaktdaten:

Re: ExcelFunktionen COMatePlus

Beitrag von jacdelad »

Aye danke. Leider werde ich erst in 12 Tagen dazu kommen das zu probieren, aber ich werde es tun.
PureBasic 6.04/XProfan X4a/Embarcadero RAD Studio 11/Perl 5.2/Python 3.10
Windows 11/Ryzen 5800X/32GB RAM/Radeon 7770 OC/3TB SSD/11TB HDD
Synology DS1821+/36GB RAM/130TB
Synology DS920+/20GB RAM/54TB
Synology DS916+ii/8GB RAM/12TB
Antworten