Aktuelle Zeit: 21.02.2019 22:55

Alle Zeiten sind UTC + 1 Stunde [ Sommerzeit ]




Ein neues Thema erstellen Auf das Thema antworten  [ 169 Beiträge ]  Gehe zu Seite 1, 2, 3, 4, 5 ... 17  Nächste
Autor Nachricht
 Betreff des Beitrags: ExcelFunktionen COMatePlus
BeitragVerfasst: 05.04.2009 01:26 
Offline
Admin
Benutzeravatar

Registriert: 29.08.2004 11:27
@all

ExcelFunctions made COMatePLUS plus Testprogramm

Ich habe, soweit wie ich das mit COMate verwirklichen konnte, die
alten Disphelper-Excel-Funktionen auf COMate konvertiert.

Hierzu benötigt ihr die ComateLibrary von srod. COMatePlus 1.2 PB 4.50

Für PB5.40LTS wurde die COMatePlus-LIB von ts-soft nochmal angepasst, darum hier aktuelle Version COMatePlus 1.2 für PB5.40LTS

Ich habe nun auf einen Download auf meine HP umstellen müssen, da der Source durch einige Änderungen und Erweiterungen
zu lang für diesen Thread wurde und der Platz hier nicht mehr ausreicht.

Zusätzlich habe, ich soweit ich nichts übersehen habe, überall Debugs für die bisherigen Funktionen eingebaut um noch
vorhandene Fehler sehen zu können. Es sind also noch einige vorhanden :roll:


Nachfolgend sind PB-Codes angepasst auf PB 5.41LTS (pb, als auch pbi).

ExcelConstantsPLUS.pbi

ExcelFunktion.pbi

Test_Excel_Funktion.pb

Test_Paste_Image_Funktion.pb

Folgende ExcelConstants-Version ist eine ältere Version (älter PB 5.40LTS) und habe ich hier beigefügt.

ExcelConstants.pbi

Letzte, aktuelle Änderung 13.12.2015. Getestet mit PB 5.41LTS-Beta

Ich wünsche allen trotzdem viel Spaß damit.

Gruß Falko

_________________
Bild
Win10 Pro 64-Bit, PB_5.4,GFA-WinDOS, Powerbasic9.05-Windows, NSBasic/CE, NSBasic/Desktop, NSBasic4APP, EmergenceBasic


Zuletzt geändert von Falko am 12.04.2009 21:59, insgesamt 11-mal geändert.

Nach oben
 Profil  
Mit Zitat antworten  
 Betreff des Beitrags:
BeitragVerfasst: 05.04.2009 18:12 
Offline
Admin
Benutzeravatar

Registriert: 29.08.2004 11:27
Fehler Linien_An_Aus() , Nun LinienEinAus() behoben.

[Edit]
Weitere Funktionen an Comate angepasst:

InsertCell()
DeleteCell()

Jetzt muss ich nur noch sehen, wie ich :

RechtsMarkieren()

und

AddWorksheetAfter()

an Comate korrekt angepasst kriege :D

[/Edit]

Gruß, Falko

_________________
Bild
Win10 Pro 64-Bit, PB_5.4,GFA-WinDOS, Powerbasic9.05-Windows, NSBasic/CE, NSBasic/Desktop, NSBasic4APP, EmergenceBasic


Nach oben
 Profil  
Mit Zitat antworten  
 Betreff des Beitrags:
BeitragVerfasst: 07.04.2009 11:34 
Offline
Admin
Benutzeravatar

Registriert: 29.08.2004 11:27
SetFont() ist nun um weitere Formatierungseinstellungen ergänzt

Der Text in der Zelle lässt sich nun auf Fett,horizontal zentriert, links und rechtsbündig, sowie
auf vertikal hoch, mittig und tief setzen.

Standardfonteinstellung ohne weitere Parameter
ist SetFont(ExcelObject)

Was ich bis jetzt in COMate noch nicht hinbekommen habe, sind die Funktionen:

AddWorksheetAfter() und RechtsMarkieren(), wobei ich letzteres
wohl rausnehmen werde.

Vielleicht habt ihr eine passende Lösung für mich, die ich einpflegen kann.


Mit freundlichen Grüßen,
Falko

_________________
Bild
Win10 Pro 64-Bit, PB_5.4,GFA-WinDOS, Powerbasic9.05-Windows, NSBasic/CE, NSBasic/Desktop, NSBasic4APP, EmergenceBasic


Nach oben
 Profil  
Mit Zitat antworten  
 Betreff des Beitrags:
BeitragVerfasst: 09.04.2009 11:33 
Offline
Admin
Benutzeravatar

Registriert: 29.08.2004 11:27
Ich habe nun noch eine weitere Funktion: Procedure
SetRGBtoColorindex() hinzugefügt. Hiermit kann man nun seine eigenen Farben anstelle der 56 Grundfarben festlegen und überall, wo Colorindex benutzt wird, nutzen.

Eine interessante Seite zu den Grundfarben dazu findet ihr hier:
http://www.mvps.org/dmcritchie/excel/colors.htm


Gruß Falko

_________________
Bild
Win10 Pro 64-Bit, PB_5.4,GFA-WinDOS, Powerbasic9.05-Windows, NSBasic/CE, NSBasic/Desktop, NSBasic4APP, EmergenceBasic


Nach oben
 Profil  
Mit Zitat antworten  
 Betreff des Beitrags:
BeitragVerfasst: 12.04.2009 16:25 
Offline
Admin
Benutzeravatar

Registriert: 29.08.2004 11:27
AddWorksheetAfter() wurde nun, dank Kiffis Unterstützung und Beispielsource nun neu eingefügt.
Hiermit ist es nun möglich, gleich beim Aufruf den Tabellennamen mit anzugeben.

Vielen Dank Kiffi.


Grüße, Falko

_________________
Bild
Win10 Pro 64-Bit, PB_5.4,GFA-WinDOS, Powerbasic9.05-Windows, NSBasic/CE, NSBasic/Desktop, NSBasic4APP, EmergenceBasic


Nach oben
 Profil  
Mit Zitat antworten  
 Betreff des Beitrags:
BeitragVerfasst: 12.04.2009 19:31 
Offline
Admin
Benutzeravatar

Registriert: 29.08.2004 11:27
So, ich habe nun auch das MarkCellsRight(..) bereinigen können, und nun
läuft alles so wie beim Disphelper, nun auch mit Comate.

Grüße, Falko

_________________
Bild
Win10 Pro 64-Bit, PB_5.4,GFA-WinDOS, Powerbasic9.05-Windows, NSBasic/CE, NSBasic/Desktop, NSBasic4APP, EmergenceBasic


Nach oben
 Profil  
Mit Zitat antworten  
 Betreff des Beitrags: ExcelFunktionen COMate
BeitragVerfasst: 04.11.2009 15:54 
Offline
Benutzeravatar

Registriert: 17.10.2004 01:59
Wohnort: Ammerland
@Falko

Versuche mich mal gerade darin, mit Hilfe der ExcelFunktionen eine bestehende Tabelle zu öffnen und auszulesen.

Code:
XIncludeFile "ExcelFunktionen.pbi"

If FileSize("Test.xls") < 0 : End : EndIf

ExcelObject = OpenExcelFile("Test.xls")

If ExcelObject
 
  ExcelVisible(ExcelObject,#True)
 
  Zellen.s = "Zelleninhalte:" + #lf$
  For ix.i = 1 To 5
    Zellen + Str(ix) + ": " + ReadCellS(ExcelObject, ix, 1) + #lf$
  Next
 
  MessageRequester("Test Excel", Zellen , #MB_OK)
 
EndIf

CloseExcelAll(ExcelObject)


Die kleine Tabelle "Test.xls" existiert und enthält Angaben in den Zellen 1 - 5.

Trotzdem bleibt das Excel Fenster grau und es werden keine Zellinhalte ausgelesen.
Was mache ich da falsch?

Anschlussfragen:

Geht das Ganze auch mit COMatePlus von SROD?

Wie müsste der Befehl aussehen, eine bestehende Tabelle als csv-Datei zu speichern?

ActiveWorkbook.SaveAs FileName:="C:\Temp\xxxx.csv", FileFormat:=xlCSV, CreateBackup:=False, local:=True

_________________
Man ist nie zu alt zum lernen, auch wenn man dabei manchmal alt aussieht!


Nach oben
 Profil  
Mit Zitat antworten  
 Betreff des Beitrags: Re: ExcelFunktionen PureDisphelper / COMate
BeitragVerfasst: 05.11.2009 00:49 
Offline
Admin
Benutzeravatar

Registriert: 29.08.2004 11:27
Hallo @jear

Ich schaue mir das am Wochenende mal in Ruhe durch, da ich Spätschicht habe und leider nicht viel
Zeit entbehren kann. Wenn du die letzten Beiträge anschaust, wirst du sehen, das ich das schon komplett auf Comate umgestellt hatte. Aber das mit dem, was du beschrieben hattest, muss ich mir
am Wochenende ausarbeiten. Ich werde auf jedenfall darauf zurück kommen :allright:

Gruß Falko

_________________
Bild
Win10 Pro 64-Bit, PB_5.4,GFA-WinDOS, Powerbasic9.05-Windows, NSBasic/CE, NSBasic/Desktop, NSBasic4APP, EmergenceBasic


Nach oben
 Profil  
Mit Zitat antworten  
 Betreff des Beitrags: Re: ExcelFunktionen PureDisphelper / COMate
BeitragVerfasst: 11.11.2009 00:23 
Offline
Benutzeravatar

Registriert: 17.10.2004 01:59
Wohnort: Ammerland
Aus meinen Bemühungen ist der folgende Code rausgekommen.

Der speichert eine Excel-Tabelle aus einer Excel-Datei in eines der gängigen Formate.
Es stört nur noch der IMHO sinnlose Dialog mit Excel nach einem "Speichern als", wenn man die erzeugte Datei verlassen will.
Man kann zwar den Dialog unterdrücken (siehe Code) , zurück bleibt aber dann eine Excel-Leiche im Speicher. :(

Ich nutze Excel 2002. Ist das bei neueren Versionen immer noch so?

Code:
;/ jear * Nov 2009 * ExcelSheet SaveAs

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

;/ Excel FileFormat Constants
#xlNormal = -4143
#xlSYLK = 2
#xlCSV = 6
#xlCSVMac = 22
#xlCSVMSDOS = 24
#xlCSVWindows = 23
#xlText = -4158
#xlTextMac = 19
#xlTextMSDOS = 21

Procedure.s ExcelSheetSaveAs(Origin.s, Copy.s, FileFormat.l=#xlNormal, SheetNumber.l=1)
  Protected ApplObj.COMateObject, ExcelBook.COMateObject, ExcelSheet.COMateObject
  Protected result.s, args.s
  If FileSize(Copy) > 0 : DeleteFile(Copy) : Delay(50) : EndIf
  ApplObj = COMate_CreateObject("Excel.Application")
  If COMate_GetLastErrorCode() = #S_OK
    ApplObj\SetProperty("Visible = #False")
    ApplObj\SetProperty("DisplayAlerts = #False")
    ExcelBook = ApplObj\GetObjectProperty("Workbooks\Open('" + Origin + "')")
    If COMate_GetLastErrorCode() = #S_OK
      ExcelBook\Invoke("Activate()")
      ExcelSheet = ApplObj\GetObjectProperty("Sheets(" + Str(SheetNumber) + ")")
      If COMate_GetLastErrorCode() = #S_OK
        ExcelSheet\Invoke("Activate()")
        args = "SaveAs('" + Copy + "'," + Str(FileFormat) + ")"
        ExcelBook\Invoke(args)
        If COMate_GetLastErrorCode() = #S_OK
          ApplObj\SetProperty("DisplayAlerts = #True")
          ;/ Es erfolgt die von Excel bekannte überflüssige Abfrage beim "Speichern als"
         
          ;/ Wie verhindert man diese überflüssige Abfrage ???
          ;/ Der nachfolgende Befehl unterdrückt zwar die Abfrage, es bleibt aber der Excel-Prozess
          ;/ als Leiche zurück, da er offenbar auf die Antwort wartet!
          ;ExcelBook\SetProperty("Saved = #True")
         
          ;/ Wickelt man den Dialog aber ab (empfehle "Nein"), bendet Excel normal.
         
          MessageRequester("ExcelSheetSaveAs", "SavedAs " + Copy, #MB_OK|#MB_ICONWARNING)
        Else
          result = "ERROR: " + COMate_GetLastErrorDescription() + " (" + args + ")"
        EndIf
        ExcelSheet\Invoke("Close")
        ExcelSheet\Release()
      Else
        result = "ERROR: Sheet Nr. " + Str(SheetNumber) + " does not exist"
      EndIf
      ExcelBook\Release()
    Else
      result = "ERROR: Cannot open EXCEL book" + Origin
    EndIf
    ApplObj\Invoke("Quit()")
    ApplObj\Release() 
  Else
    result = "ERROR: Cannot open EXCEL application"
  EndIf 
  ProcedureReturn result
EndProcedure

;/Test

SetCurrentDirectory(GetPathPart(ProgramFilename()))
Define.s home = GetCurrentDirectory(), result

;result = ExcelSheetSaveAs(home + "Test.xls", home + "Test2.xls", #xlNormal, 1)
;result = ExcelSheetSaveAs(home + "Test.xls", home + "Test.slk", #xlSYLK, 1)
result = ExcelSheetSaveAs(home + "Test.xls", home + "Test.csv", #xlCSV, 1)

If result : MessageRequester("ExcelSheetSaveAs", result, #MB_OK|#MB_ICONWARNING) : EndIf

End

_________________
Man ist nie zu alt zum lernen, auch wenn man dabei manchmal alt aussieht!


Nach oben
 Profil  
Mit Zitat antworten  
 Betreff des Beitrags: Re: ExcelFunktionen PureDisphelper / COMate
BeitragVerfasst: 11.11.2009 00:37 
Offline
Admin
Benutzeravatar

Registriert: 29.08.2004 11:27
Hi jear, dann bist du ja doch noch soweit gekommen.

ich erhalte bei diesem Source leider die folgende Fehlermeldung:

---------------------------
ExcelSheetSaveAs
---------------------------
ERROR: Cannot open EXCEL book F:\PureBasic4_31_X86\Falko\ExcelProgramm\ExcelFunktionslibrary\Test.xls
---------------------------
OK
---------------------------


Mit der Vorherigen, wurde zwar excel2007 geöffnet, aber ein Fehler in der Zusammensetzung vorhanden.
Diese hatte ich mir angeschaut, aber ich war selbst auch nicht weiter gekommen.

Damit ich das immer aus einem bestimmten Verzeichnis mit comateComPlus verwenden kann, habe ich bei mir
den includepath wie folgt so geschrieben und das comateCom auch dort eingefügt.

Code:
IncludePath #PB_Compiler_Home+"COMatePlus"
...



Gruß Falko

_________________
Bild
Win10 Pro 64-Bit, PB_5.4,GFA-WinDOS, Powerbasic9.05-Windows, NSBasic/CE, NSBasic/Desktop, NSBasic4APP, EmergenceBasic


Nach oben
 Profil  
Mit Zitat antworten  
Beiträge der letzten Zeit anzeigen:  Sortiere nach  
Ein neues Thema erstellen Auf das Thema antworten  [ 169 Beiträge ]  Gehe zu Seite 1, 2, 3, 4, 5 ... 17  Nächste

Alle Zeiten sind UTC + 1 Stunde [ Sommerzeit ]


Wer ist online?

Mitglieder in diesem Forum: 0 Mitglieder und 5 Gäste


Sie dürfen keine neuen Themen in diesem Forum erstellen.
Sie dürfen keine Antworten zu Themen in diesem Forum erstellen.
Sie dürfen Ihre Beiträge in diesem Forum nicht ändern.
Sie dürfen Ihre Beiträge in diesem Forum nicht löschen.

Suche nach:
Gehe zu:  

 


Powered by phpBB © 2008 phpBB Group | Deutsche Übersetzung durch phpBB.de
subSilver+ theme by Canver Software, sponsor Sanal Modifiye