Witam. Na kodowaniu w LO znam się nie wiele dopiero zaczynam swoją poważną przygodę z LO Calc z powodu pozbawienia w pracy dostępu do MS Excela
Mam w arkuszu dane w formie tabelarycznej (max 1500 wierszy)
Id pracownika odpowiedzialnego|nr umowy|wartość umowy|okres obowiązywania umowy|data podpisania umowy|data zakończenia umowy
każdy id pracownika może ale nie musi występować kilkukrotnie, na pewno jest jedno wystąpienie.
W jaki sposób napisać makro które stworzy automatycznie arkusze dla wszystkich występujących w Arkusz1 identyfikatorów pracownika i przenieść lub skopiować do tych arkuszy dane o umowach osób z identyfikatorem którego nazwa to identyfikator pracownika?
Miałem to zrobione w Excelu ale w LibreOffice się wysypuje
Filtrowanie i przeniesienie danych pomiędzy arkuszami
Filtrowanie i przeniesienie danych pomiędzy arkuszami
LibreOffice 6.2 | Windows 10 64b PL
Re: Filtrowanie i przeniesienie danych pomiędzy arkuszami
W pseudokodzie
nbw = 1 (numer bieżącego wiersza; tzn. wiersz drugi w kolejności; w pierwszym jest nagłówek)
pobierz id z kolumny nr 0 z wiersza nbw
dopóki id jest niepusty (tzn pętla while)
jeżeli nie istnieje arkusz o nazwie id, to go utwórz
nww = numer pierwszego wolnego wiersza w akuszu o nazwie id
wpisz do nww-tego wiersza akusza id po kolei wszystkie dane z kolumn wiersza nbw z pierwszego arkusza
zwiększ nbw o 1
pobierz id z kolumny nr 0 z bieżącego wiersza pierwszego arkusza
end while
zapisz skoroszyt
Szczegóły: AndrewMacro i OpenOffice Macros Explained A. Pitonyaka
Zastrzeżenie: po czym odróżnić, czy dana tabela została już przetworzona? może kopiować do osobnego skoroszytu, zakładanego od zera?
Zadanie nie jest szczególnie trudne. Daj krótki neutralny (tj. bez danych poufnych) przykład, spróbujemy coś uszczegółowić, gdyby w.w. pseudokod był jednak zbyt ogólny.
nbw = 1 (numer bieżącego wiersza; tzn. wiersz drugi w kolejności; w pierwszym jest nagłówek)
pobierz id z kolumny nr 0 z wiersza nbw
dopóki id jest niepusty (tzn pętla while)
jeżeli nie istnieje arkusz o nazwie id, to go utwórz
nww = numer pierwszego wolnego wiersza w akuszu o nazwie id
wpisz do nww-tego wiersza akusza id po kolei wszystkie dane z kolumn wiersza nbw z pierwszego arkusza
zwiększ nbw o 1
pobierz id z kolumny nr 0 z bieżącego wiersza pierwszego arkusza
end while
zapisz skoroszyt
Szczegóły: AndrewMacro i OpenOffice Macros Explained A. Pitonyaka
Zastrzeżenie: po czym odróżnić, czy dana tabela została już przetworzona? może kopiować do osobnego skoroszytu, zakładanego od zera?
Zadanie nie jest szczególnie trudne. Daj krótki neutralny (tj. bez danych poufnych) przykład, spróbujemy coś uszczegółowić, gdyby w.w. pseudokod był jednak zbyt ogólny.
JJ
LO (24.2) ∙ Python (3.12|3.10) ∙ Unicode 15 ∙ LᴬTEX 2ε ∙ XML ∙ Unix tools ∙ Linux (Rocky|CentOS)
LO (24.2) ∙ Python (3.12|3.10) ∙ Unicode 15 ∙ LᴬTEX 2ε ∙ XML ∙ Unix tools ∙ Linux (Rocky|CentOS)