Eksportowanie plików z aplikacji - PDF, CSV, XLS...

20 stycznia 2022
Jakub Rojek Jakub Rojek
Zdjęcie autorstwa Pixabay z Pexels (https://www.pexels.com/pl-pl/zdjecie/stos-folderow-357514/)
Kategorie: Dla klientów, Podstawy IT

W wielu aplikacjach zbierane są różne dane - od informacji o sprzedaży poprzez postęp wykonania zadań aż do danych osobowych użytkowników. Mimo że systemy zwykle umożliwiają wygodny podgląd wszystkich informacji (np. w postaci panelu administratora), udostępniają filtrowanie, sortowanie oraz paginację, to i tak bywają sytuacje, w których te wszystkie rzeczy nie wystarczą i dane trzeba przetworzyć w zewnętrznym narzędziu. Ale to nie wszystko - przecież bardzo często zdarza się, że chcemy przekazać np. wyniki sprzedaży kierownictwu, które nie ma konta w systemie lub nie ma sposobności, aby samodzielnie dotrzeć do wyników, a potrzebuje ich.

Te i wiele innych przypadków pokazują nam, że w systemach często trzeba założyć możliwość eksportowania wyników, aby móc potem coś z nimi zrobić poza aplikacją. Dla wielu jest to oczywiste, jednak nie zawsze jasne jest to, jak ten eksport ma wyglądać, w tym jakie rozszerzenie ma mieć plik wynikowy. Niektórzy tego nie przemyśleli przed postanowieniem, że taka funkcja będzie potrzebna, inni wiedzą tylko, że muszą to móc otworzyć w Excelu, a jeszcze inni pytają o wycenę eksportu bez określenia szczegółów, twierdząc, że przecież to i tak wszystko jedno. Otóż - nie.

Najpopularniejsze formaty, do których aplikacje mogą zapisywać dane to:

  • PDF
  • XLS(X)
  • CSV
  • TXT
  • XML
  • JSON

W wielu przypadkach, gdy klient nie jest w stanie powiedzieć, w jakim formacie potrzebuje eksportować pliki, to rolą zespołu wykonawczego i (przede wszystkim) analityka jest wywnioskować to na podstawie rzeczywistej potrzeby, która stoi za tym wymaganiem. Tym niemniej, warto znać "specjalizacje" poszczególnych formatów, aby wiedzieć, czego się po nich spodziewać i... jaka może być wycena.

Format PDF jest związany z dokumentami nieedytowalnymi (choć to też jest dyskusyjne), które są uniwersalne pod kątem środowiska, na którym je otwieramy. Zazwyczaj mają format A4, ale nie jest to regułą. Z tego powodu świetnie nadają się do raportów (także tych z wykresami) i wszelakich umów, oświadczeń oraz zapisów, które się drukuje, a potem uzupełnia ręcznie. PDF jest też niezłym wyborem, jeśli zależy nam na estetyce i np. różnym formatowaniu tekstu czy wstawieniu loga firmy oraz informacji o niej w nagłówku czy stopce. Nie nadaje się natomiast to przedstawienia raportu w postaci tabelek, gdzie jest bardzo dużo kolumn oraz - oczywiście - nie umożliwia np. dynamicznego filtrowania czy sortowania danych. Z racji popularności tego formatu, istnieje dużo bibliotek pozwalających generować dokumenty PDF w różnych technologiach, choć często związane jest z tym dużo pracy, aby powstał taki plik, jaki jest potrzebny.

W momencie, kiedy mamy dużo danych (np. w formie tabelki) i chcemy je potem filtrować, sortować i kopiować, zasadny jest eksport do formatu, który może być obsługiwany przez Microsoft Excel bądź inny, równoważny program. Tylko tutaj sprawa dotycząca konkretnego formatu nie jest jednoznaczna i nie zawsze wskazuje, że potrzebujemy XLS lub XLSX. Zastanówmy się, czy w takim zestawieniu potrzebujemy np. zakładek (aby pogrupować tabelki z danymi według jakiegoś kryterium) i/lub formatowania komórek. W wielu przypadkach, jeśli nie jest to nam do niczego potrzebne (np. spokojnie wystarczy nam wiele plików zamiast jednego z zakładkami), format XLS-owy nie jest wskazany i wystarczy CSV. Ma to swoje odzwierciedlenie w wycenie - utworzenie pliku w rozszerzeniu typowo excelowym jest tak naprawdę tworzeniem pliku binarnego i sugeruje skorzystanie z odpowiedniej biblioteki. Nie jest to bardzo trudne, ale też trzeba się mierzyć z pewnymi niewygodami oraz problemami, podczas gdy tworzenie pliku CSV (jako tekstowego o prostej strukturze) jest zwykle dość łatwe (oczywiście, pomijając sam sposób pobrania danych, ale to dotyczy wszystkich dokumentów). Jak najbardziej taki zbiór dyskowy można zaimportować do Excela i ewentualnie tutaj stoi bariera po stronie klienta, która uniemożliwi zrobienie tego osobom zupełnie zielonym w obsłudze programu do arkuszów kalkulacyjnych. Tym niemniej, CSV jest zwykle wystarczający i jeśli tylko nie potrzebujemy, aby plik był "zaawansowany estetycznie", warto zastanowić się, czy nie postawić na tańszą wersję.

Skoro mowa o plikach tekstowych, to niekiedy wystarczy eksport do poczciwego formatu TXT, co również jest proste i może być wystarczające, gdy chcemy uzyskać w ten sposób np. nieskomplikowany strukturalnie, choć długi tekst, jaki potem skopiujemy do innego narzędzia. Przykładowo, wypunktowane w tym formacie zestawienie zrealizowanych zadań w danym okresie można potem umieścić w mailu do klienta. Jest to szczególnie przydatne, gdy informacje w systemie znajdują się w tabelkach lub HTML-u i trudno skopiować je ze strony w taki sposób, aby formatowanie się zgadzało.

W wielu wypadkach komunikacja pomiędzy serwisami opiera się o wymianę danych w formatach XML oraz JSON. Przewagę w sieci ma ten drugi ze względu na mniejszy rozmiar informacji (klamerki oraz nawiasy wymagają mniej znaków niż tagi XML-owe), ale pierwszy z kolei pozwala lepiej opisać dokument i teoretycznie można z nim zrobić więcej rzeczy (o czym dużo wiedzą studenci studiów magisterkich informatyki na Politechnice Poznańskiej - pozdrowienia). Zdarza się też, że użytkownikom zależy, aby uzyskać te formaty "ręcznie", aby później móc je zaimportować do innych narzędzi. Oba formaty są tekstowe, natomiast w ich przypadku ważniejsza jest potrzeba zachowania (a często najpierw zaprojektowania) odpowiedniej struktury. Nie jest to trudne (nieco bardziej złożony jest XML, do którego potrzebna może być biblioteka, ale możliwe jest także wykonanie eksportu bez niej), choć w tym przypadku praca związana jest także ze zdefiniowaniem i zaimplementowaniem wewnętrznej konstrukcji takiego pliku, a więc np. hierarchii węzłów, typu wartości itd. Tutaj wszystko zależy od dalszego zastosowania i celu, jaki przyświeca osobom decydującym się na wybór jednego z tych formatów.

Oczywiście, w grę wchodzi często również eksport do plików o innej strukturze (o ile jest taka sposobność), ale także zewnętrznych systemów, co jest możliwe poprzez API. Warto też pamiętać o tym, że systemy umożliwiają import danych, ale należy mieć świadomość, że zazwyczaj jest to trudniejsze niż eksport i nie zawsze możliwe w łatwy sposób. Formaty plików są bowiem bardzo różne - istnieją takie o prostej i trudnej strukturze, tekstowe i binarne, otwarte i zamknięte... Tym niemniej, przetwarzanie plików w aplikacjach jest możliwe i warto znać zalety oraz wady poszczególnych rozszerzeń, aby dobrać odpowiedni do swoich potrzeb i nie przepłacić.

Pozdrawiam i dziękuję - Jakub Rojek.

Lubimy pisać, nawet bardzo, ale na co dzień tworzymy aplikacje webowe i mobilne. Sprawdź niektóre z wykonanych przez programów.

O autorze

Jakub Rojek

Główny programista i współwłaściciel Wilda Software, z wieloletnim doświadczeniem w tworzeniu i rozwoju oprogramowania, ale także w pisaniu tekstów na różnorakich blogach. Zaprawiony w boju analityk i architekt systemów IT. Jednocześnie absolwent Politechniki Poznańskiej i okazjonalny prowadzący zajęcia na tej uczelni. W wolnych chwilach oddaje się graniu w gry wideo (głównie w karcianki), czytaniu książek, oglądaniu futbolu amerykańskiego i e-sportu, odkrywaniu cięższej muzyki oraz wytykaniu innym błędów językowych.

Jakub Rojek