Dzisiaj w pracy stanąłem przed bardzo ciekawym wyzwaniem związanym z wyeksportowaniem zakresu komórek Excela do formatu HTML.
Pierwsze Próby
Nigdy wcześniej nie miałem potrzeby wykonania takiego zadania, ale intuicyjnie wiedziałem, że nie powinno to być wyjątkowo trudne.
Faktycznie, po szybkim sprawdzeniu internetu, z pomocą przyszła kolekcja PublishObjects obiektu Workbook. Pierwsze próby eksportu okazały się owocne i sprawę uznałem za zakończoną…
Formatowanie Warunkowe
Przy drugim podejściu i eksporcie innego zakresu komórek, okazało się, że Excel gubi gdzieś po drodze formatowanie warunkowe.
W oryginalnym pliku miałem czerwone kropki (pokazywały pewne opóźnienie) i żółte trójkąty (pokazywały brak opóźnienia), w pliku HTML tych ikonek już nie było. Mojemu Klientowi zależało mocno na tym, aby ta prosta informacja była pokazana w formie takiej wizualizacji.
Formatowanie Niestandardowe
Przypomniałem sobie o zaawansowanych możliwościach formatowania niestandardowego i postanowiłem je wykorzystać w tym przypadku.
Wiedziałem, że pierwszym etapem będzie znalezienie symboli wypełnionego kółka i trójkąta. Bardzo szybko udało mi się je namierzyć. Znak równości wyświetlony czcionką Webdings przeistacza się w kółko, natomiast cyfra 5 w nieco mniejszy pod względem rozmiaru trójkąt.
Pozostał temat nadania kolorów tym ikonom…. Właśnie tutaj z pomocą przyszło formatowanie niestandardowe, które pozwala ustawić osobny format dla liczb dodatnich, liczb ujemnych, zera i tekstu.
Co więcej, niewielu użytkowników Excela wie o tym, że możemy też określić kolor w jakim mają zostać wyświetlone dane! Mamy do dyspozycji aż 56 barw. http://dmcritchie.mvps.org/excel/colors.htm.
Format na jaki się zdecydowałem to: [Color44]0;;;[Color3]Standardowy.
W pierwszej kolejności brane są pod uwagę liczby dodatnie, czyli nasza cyfra 5. Ustawiłem kolor 44, czyli ciemnożółty. Liczby ujemne i zera nie są wyświetlane, natomiast dla tekstu (znak równości) wyświetlamy dane czerwoną czcionką.
W taki oto prosty sposób udało mi się osiągnąć zamierzony efekt, ta prosta wizualizacja bez przeszkód została utrwalona w pliku HTML.