Alternativa za Excel Visual Basic?

ja.

  • ****
  • 316
    • Zobrazit profil
    • E-mail
Re:Alternativa za Excel Visual Basic?
« Odpověď #15 kdy: 21. 11. 2022, 13:12:50 »
Niekde som cital, ze v LibreOffice Calcu sa da pouzivat na skriptovanie aj Python, ale ked som podla navodu hladal na mojom Linux PC, tak som tam taku moznost vobec nenasiel, ale len LibreOffice Basic.

Pretoze Python v LO vyzaduje nakonfigurovat:

https://help.libreoffice.org/latest/lo/text/sbasic/python/python_ide.html

https://wiki.documentfoundation.org/Macros/Python_Design_Guide


Re:Alternativa za Excel Visual Basic?
« Odpověď #16 kdy: 21. 11. 2022, 13:21:58 »
Mimo téma, ale pro zajímavost: Excel má konečně Lambda funkce a pracoval na tom S. P. Jones
https://www.youtube.com/watch?v=r9kf9an-zPY&ab_channel=TheArchimedeans

mikrom

  • ****
  • 321
    • Zobrazit profil
    • E-mail
Re:Alternativa za Excel Visual Basic?
« Odpověď #17 kdy: 21. 11. 2022, 14:14:05 »
Pretoze Python v LO vyzaduje nakonfigurovat:
+1

ano, zistil som ze si musim minimalne doinstalovat este toto:
Kód: [Vybrat]
sudo apt install libreoffice-script-provider-python

Re:Alternativa za Excel Visual Basic?
« Odpověď #18 kdy: 21. 11. 2022, 14:30:52 »
Nevím, jestli by to pro vás bylo řešení. Ale existuje možnost zapisovat do excelu v pythonu a ostatních jazycích. Takže, co můžete udělat je, že si naklikáte celý excel ručně s tím, že se zdrojové hodnoty tahají ze skrytého listu. Nad tím uděláte všechny ty hezký věci jako grafy, zvýraznění a tak.
Pak už jenom váš program zkopíruje zdrojový excel pod novým jménem. Naplní do listu hodnoty z výstupu. Uloží a nakopíruje do výstupní složky.

Re:Alternativa za Excel Visual Basic?
« Odpověď #19 kdy: 21. 11. 2022, 16:44:51 »
Vzhladom na to ze otazka je o exceli, tak predpokladam windows.
Problem windowsu je to ze by default nema nainstalovany python, R, ...

Cize ak ten excel bude pouzivat veci ktore nie su nainstalovane na PC, tak na pc u niekoho ineho (non dev osoba, napr sekretarka, manager, zakaznik) to proste chcipne. A asi nechcete niekomu posielat mail stylom:
"...v prilohe najdete excel subor. Pre jeho spravne fungovanie prosim este nainstalujte na svoj pc python podla navodu na prilozenom linku.

S pozdravom,
UrciteNieVirus
"

Co si myslite ze sa s takym mailom stane?

Cize jedina pouzitelna nahrada je bud pouzit excel, alebo pouzit nieco mimo excel co je ale zarucene nainstalovane na PC -> napr nieco co bezi nad .net frameworkom, alebo sa spolahnut ze je tam nejaka java (vacsinou na pracovnych pc bezi nieco na jave, cize tam je).

Problem tichto externich rieseni je niekedy este aj vacsia krkolomnost ako (excel) nativne riesenie. Plus vykonova penalizacia za prenasanie dat medzi x separatnymi prostrediami, co vzhladom na jednoduchost ulohy (zaokruhlovanie hodnot) je zbytocnost.


Re:Alternativa za Excel Visual Basic?
« Odpověď #20 kdy: 21. 11. 2022, 16:58:57 »
to kanoe22

No hlavně tazatel neupřesnil, co přesně tím VB chce vlastně dosáhnout.

Například můj postup odchodu od práce v excelu byl nejprve Matlab, nedostatek licencí mě donutil to přepsat do R a vyšší komplexita plus absence jednoho api k proprietární knihovně pak vyústil v Python. 

A v podstatě výsledkem je stejná sada grafů, dokonce jsem si i natípal barevné schéma, aby to mgmt nedráždilo...
Gréta je nejlepší.

mikrom

  • ****
  • 321
    • Zobrazit profil
    • E-mail
Re:Alternativa za Excel Visual Basic?
« Odpověď #21 kdy: 21. 11. 2022, 17:15:42 »
...
Cize jedina pouzitelna nahrada je bud pouzit excel, alebo pouzit nieco mimo excel co je ale zarucene nainstalovane na PC -> napr nieco co bezi nad .net frameworkom ...
...
ano z toho dovodu pouzivam este stale VBscript, zatial je vsade (neviem sice ci aj na W11)
Skusal som aj powershell, ale na programovanie mi to pripada horsie ako VBscript a hlavne tam byvaju komplikacie so spustenim: treba bypasovat ExecutionPolicy a teda ku skriptu prikladat aj prikaz ako ho spustit.

Mudvy

Re:Alternativa za Excel Visual Basic?
« Odpověď #22 kdy: 21. 11. 2022, 21:22:39 »
Můžeš C# jak už kolega výše zmínil. Hledej VSTO. Ale je to docela opruz, protože to je jen wrapper nad COM objekty, takže třeba Watch window nefunguje při debugování a asi se toho nejde víc.

Presne tak. Po C# excel kod je potreba napsad kod nejdriv v vba, odzkouset a potom ho prepsat do C# (volani COM objektu je vicemene stejne jako ve vba). Vyplati se to jen, pokud je komunikace s excelem podruzna vec a cela hlavni logika je napsana v c#. Treba na export dat do excelu. Pripadne jako jednotne klikatko spoustejici ruzna mala excel makra.

Jak tohle muze nekdo napsat. Je nesmysl nejdriv psat vba a pak z toho delat c#. Rovnou pises c# neni na tom nic zazracneho

Pokud ti nevoni vba tak to vsechno pis v C# nebo VB. Udelej si bud konzolovku nebo rovnou jednoduchy winform a pokud chces byt dobrodruznejsi tak wpf appku.

Inspiruj se treba tim ze si makro nahrajes v excelu, tim ze si to naklikas ruco, aby si mel predstavu jake objekty pouzivas a pak si z toho postav vlastni logiku.

Jen nepouzivej v zadnem pripade to co ti nahraje makro. Dela tam spoustu veci pres selecty a to je naprosto zbytecny a super pomale. Navic se to muze chovat nepredvidatelne.

Postup je snadny
pozijes visual studio community
zalozis treba winform na frameworku 4.8
Nareferencujes si excel knihovnu
Vytvoris nebo chytnes com object excelu (ve VB je to GetObject(Class:=“Excel.Application”))
A stav svoji logiku
Pak to dej na tlacitko

Vyhody - mas kvalitni debug, naseptavani a prace s objekty excelu pokud nejsi lem… a nepouzivas late binding, hezky barevne odliseni v kodu a mnoho dalsich vyhod moderniho ide oproti vba ide.

Samozrejme si to vsechno muzes vymyslet do dll kterou volas z vba, ale na to uz potrebujes lepsi schopnosti.

Jen tak mimochodem i v tom vba ide se daji psat komplexni procesy na 20 000 radku a neni to tragedie.

Vyhody oproti manipulaci pres com je asi v deseti nasobne rychlosti operaci a to je nekdy pokud mas nekolika minutove operace vyhra oproti programu co excel ovlada pres com.

Muzes to i kombit ze c# vygeneruje vbascript a ten spustis z excelu a taky to pekne frci 🙂

Tech cest je spousty …

alex6bbc

  • *****
  • 1 432
    • Zobrazit profil
    • E-mail
Re:Alternativa za Excel Visual Basic?
« Odpověď #23 kdy: 21. 11. 2022, 21:34:50 »
takze nakonec je nejjednodussi psat visual basic primo v excelu :-)

Mudvy

Re:Alternativa za Excel Visual Basic?
« Odpověď #24 kdy: 21. 11. 2022, 22:03:56 »
takze nakonec je nejjednodussi psat visual basic primo v excelu :-)

Jen si prosim nezamenujte vb a vba. Je to velky rozdil.


Vba co je v excelu a vsude jinde v integrovanych ide je zalozeny na verzi 7.1

Visual basic ve visual studiu je verze 16.9

V podstate se da rict ze co muzu v dnesnim c# muzu i v posledni verzi vb.

Pouzivat vba v excelu je cestovani v case do roku 2003

Re:Alternativa za Excel Visual Basic?
« Odpověď #25 kdy: 22. 11. 2022, 08:45:42 »
Pokud je třeba opravdu programovat (např GUI klikátka, in place modifikace atp), tak bych se tomu asi vyhnul a udělal normální program mimo excel.
Větší věci (s pár jsem se uživatelsky setkal) mají tendenci se rozbíjet přo aktualizacích.

Pokud by stačila transformace - to co je v prvním příspěvku (nahradit hodnoty ve sloupci nulou pokud absolutní hodnota je menší než 0.1) by se dalo udělat v powerquery který je  součástí excelu už pár let.
Není to ale vb/vba programování, spíš je to trochu podobné sql dotazování - místo modifikace tabulky v místě, jde vlastně o dotaz který je směrován do své vlastní tabulky, kterou ale lze aktualizovat, podobně jako kontingenční tabulka.
A powerquery toho umí ještě mnohem víc (externí soubory/databáze spojování tabulek,....)