Category: formatowanie
PowerShell–efektywnie(j), część 9
| 2012-03-17 | Posted by Bartek Bielawski under formatowanie, moduły, najlepsze praktyki, Początki, Polskie blogi IT |
|
Dziś wracamy do tematu modułów w PowerShellu. Uznałem, że jeśli teraz nie przysiądę i nie dokończę tego cyklu – to nie zrobię tego w najbliższej, dającej się przewidzieć przyszłości. Poprzednio opisałem podstawy tworzenia modułów, dziś – pora na manifest i pliki definiującej typy i format ich wyświetlania.
Manifest to prościutki skrypt PowerShella. W zasadzie zawiera on jedną tablicę skrótów z kluczami odpowiadającymi właściwościom/ ustawieniom modułu. Korzystamy przy tym z rozszerzenia .psd1, które wykorzystywane jest w zasadzie tylko w tym celu.
Nasz manifest
Manifest najprościej jest stworzyć przy pomocy polecenia New-ModuleManifest. Polecenie to spyta nas w zasadzie o wszystkie elementy, które do stworzenia manifestu są niezbędne. Większość kluczy ma dość jednoznaczne nazwy, zatrzymać się chciałbym w zasadzie przy dwóch: TypesToProcess i FormatsToProcess.
Oba klucze przyjmują tablicę stringów, w której zawrzeć możemy ścieżkę do wszystkich plików .ps1xml dotyczących naszego modułu. Pliki te służą definiowaniu dla istniejącego typu (czy to typu “prawdziwego”, czy też “wirtualnego”, stworzonego przez nas na potrzeby modułu) dodatkowych właściwości i metod (TypesToProcess) oraz sposobów wyświetlania (FormatsToProcess). Pliki .ps1xml to całkowicie odrębny temat, w dodatku dość obszerny. W wielkim skrócie można napisać, że są to pliki XML o zdefiniowanym schemacie, dzięki którym możemy “centralnie” przeprowadzać operacje podobne do tych, które wykonujemy przy pomocy poleceń takich jak Format-Table, czy Add-Member.
Manifest pozwoli nam powiązać te pliki z naszym modułem, dzięki czemu obiekty tworzone przy jego pomocy będą wyglądać tak, jak my sobie tego zażyczymy. By jednak obiekty przez nas generowane wyróżnić z tłumu innych, zwłaszcza jeśli nie chcemy dodawać “prawdziwego” typu poleceniem Add-Type, musimy skorzystać z jednej, dość prostej techniki, by nasze obiekty miały stosowną “metkę”.
Pseudo-typ i pliki PS1XML.
Skuteczne korzystanie z plików typów/ formatów wymaga od nas trzech rzeczy. Po pierwsze: funkcje tworzące nasz wymarzony obiekt muszą go odpowiednio “oznakować”:
function Get-Foo { param ( [Parameter(ValueFromPipeline = $true)] [string]$Bar ) process { $Out = New-Object PSObject -Property @{ One = 1 Two = $Bar } $Out.PSTypeNames.Insert(0, 'Typ.Wymarzony' ) $Out } }
Druga rzecz, to dodać ten wirtualny typ do naszych plików PS1XML w odpowiednim miejscu, zarówno w pliku opisującym formatki:
<Configuration>
<ViewDefinitions>
<View>
<Name>Wymarzony.FT</Name>
<ViewSelectedBy>
<TypeName>Typ.Wymarzony</TypeName>
</ViewSelectedBy>
… jak i pliku opisującym rozszerzenia naszego typu:
<?xml version="1.0" encoding="utf-8" ?>
<Types>
<Type>
<Name>Typ.Wymarzony</Name>
<Members>
Jak widać nie wymagało to wielkiej pracy, a efekt jest zwykle zadowalający. Zamiast dość losowego wyniku i obiektu bez żadnych “specjalnych” właściwości i metod możemy uzyskać zwierza, który wyświetlany będzie w sposób dla nas wygodny i będzie gotowy wykonać dla nas wybrane przez nas zadania:
To wszystko można oczywiście zrobić również bez modułu, ale moduł czyni te operacje o wiele prostszymi i daje nam (przy pomocy pliku manifestu) bardzo dokładną kontrolę.
$Env:PSModulePath czyli o instalacji modułu
Moduły można, jak widać na załączonym zrzucie ekranu, importować bez większego trudu z dowolnego miejsca na dysku. Istnieje jednak zmienna środowiskowa, która definiuje kilka folderów, z których import będzie o wiele prostszy. PSModulePath przypomina nieco zmienną PATH: ma identyczną składnię, lista folderów jest rozdzielona średnikami:
Poprawna struktura:
Ponieważ zdarzyć się może, że zrobimy literówkę w nazwie pliku lub folderu (a raczej ze względu na to, że sam kiedyś zmarnowałem sporo czasu próbując ustalić, czemu jeden z moich modułów nie działał poprawnie) stworzyłem wieki temu funkcję, która sprawdzi poprawność tych nazw i jeśli się na to zdecydujemy – błędy te naprawi. Na tym kończę serię dotyczącą efektywnego PowerShella. Troszkę się zeszło… ![]()
Świetnie sformatowany wykres
| 2011-11-05 | Posted by Marcin under formatowanie, Polskie blogi IT, wykres, zaawansowane |
|
Mam nadzieję, że tytuł przykuł uwagę
Domyślne wykresy w Excelu są delikatnie mówiąc, niezbyt dobrze sformatowane. Zwłaszcza, jeżeli chodzi o niższe wersje, do 2003 włącznie. Zespół programistów MicroSoftu zajmujący się tą częścią programu nie bardzo nadążał zamianami w prezentacji danych. Wielu użytkowników nie chce albo nie umie nic z tym zrobić. W tym wpisie pokażę Ci jak zrobić coś z niczego.
Na rysunku A jest standardowa wersja wykresu słupkowego wykonana Excelu 2003. Szare tło męczy, niepotrzebna legenda zajmuje miejsce i słupki otoczone linią cofają nas do standardów z ubiegłego tysiąclecia.

Jeżeli chcesz poprawić, chociaż trochę, wygląd wykresu, to usuń legendę. Dla jednej serii danych, jest zbędna. Najprostszym sposobem, żeby usunąć legendę, jest jej zaznaczenia i naciśnięcie klawisza Del.
Usuń szare tło lub zmień na kolor biały. Analogicznie, jak w przypadku legendy, zaznacz tło wykresu i naciśnij klawisz Del. Od razu wykres jest czytelniejszy. Przykład nasz na rysunku B.
Ja zmieniam wykresy jeszcze bardziej. Jak klikniesz na słupek prawym przyciskiem myszy, otworzy się menu, z którego wybierz Formatuj serię danych.
Otworzy się okno, w którym wybierz zakładkę Opcje serii.
Suwakiem znajdującym się w części Szerokość przerwy regulujesz odstęp pomiędzy słupkami. 100% oznacza, że przerwa jest takiej samej szerokości jak słupek. Szerokość przerwy dobierz sobie według uznania. Ja zwykle ustawiam na wartość nie większą niż 100%.
Przejdź teraz na zakładkę Wypełnienie.
W górnej części wybierasz sposób wypełnienia słupka. Możesz wybrać brak wypełnienia, wypełnienie gradientowe lub wzorem. W tym wypadku wybieram wypełnienie pełne, czyli jednobarwne.
Poniżej możesz wybrać kolor słupka. Obok jest suwak umożliwiający zmianę przezroczystości. Dzięki niemu możesz rozjaśnić kolor lub też częściowo uwidocznić to, co jest pod spodem.
Przejdź do zakładki Kolor krawędzi. Tam wybierz Brak linii. Nie tylko moim zdaniem, brak linii otaczających słupki daje bardziej profesjonalny efekt.
Na końcu, kliknij prawym przyciskiem na słupek i z menu wybierz Dodaj etykiety danych.
Nad słupkami pojawią się wartości prezentowane przez wykres.
I tak stworzyliśmy wykres C, pokazywany na początku wpisu.
Zapraszam do eksperymentowania z innym od standardowego formatowaniem wykresów.
Related Posts:
Lista rozwijana, tabelki i aparat fotograficzny
| 2011-01-12 | Posted by Marcin under Adr.pośr, dynamiczne zakresy, formatowanie, Formuła tablicowa, Formuły, Formuły tablicowe, Indeks, lista rozwijana, Podaj.Pozycję, Polskie blogi IT, Przesunięcie, Wiersz, Wygląd skoroszytu |
|
Dzisiaj o tym, w jaki sposób dodać do swojego arkusza możliwość wyboru i wyświetlenia jednej z wielu tabel (zakresów) znajdujących się w innym skoroszycie. Zadanie niezbyt skomplikowane, ma jednak tę zaletę, że będziemy korzystać z kilku ciekawych i bardzo użytecznych technik (funkcji Excela). Będzię to wspomniane już w tytule narzędzie Aparat Fotograficzny, o którym pisałem [...]
Interaktywna tabelka i formatowanie warunkowe
| 2010-12-31 | Posted by Marcin under formatowanie, formatowanie warunkowe, Formuły, Polskie blogi IT, Tabelka, Wygląd skoroszytu |
|
Korzystając z kilku (raczej prostych) formuł oraz formatowania warunkowego (bez konieczności użycia makr) można w bardzo prosty sposób utworzyć interaktywną tabelkę. Ilość zakładek może być w zasadzie dowolna (o ile oczywiście chce Wam się przygotowywać odpowiednie formuły i warunki dla formatowania warunkowego). Kilka uwag: Nie korzystam z makr. Dane źródłowe znajdują się w trzech roboczych [...]



