Pliki CSV (wartości oddzielone przecinkami) to specjalne typy plików, które można tworzyć, odczytywać i edytować w programie Excel. СпроTen format jest tekstowy i zaprojektowany w celu zapewnienia danych tabelarycznych. W dokumentach CSV pola danych są oddzielone przecinkami zamiast kolumn (przecinki w wersji angielskiej lub średniki w rosyjskiej wersji programu). Tekst i liczby zapisane w tym formacie można łatwo przenieść z jednego oprogramowania do drugiego.
Plik CSV może być odczytywany przez edytor tekstu, a lista takich edytorów zawiera większość programów używanych do pracy z tekstem i tabelami. Programy takie jak Microsoft Excel lub Corel WordPerfect Office mogą otwierać format CSV lub ten plik może być otwierany przy pomocy narzędzia LibreOffice, Apache OpenOffice oraz wielu innych. Podczas otwierania dokumentu w programie Excel głównym zadaniem (problemem) jest wybranie metody kodowania używanej podczas zapisywania pliku.
Jeśli zostanie wybrane nieprawidłowe kodowanie, najprawdopodobniej użytkownik zobaczy wiele nieczytelnych znaków. Ponadto separator ma kluczowe znaczenie. Na przykład, jeśli dokument został zapisany w wersji angielskiej, a następnie otwieramy go w wersji rosyjskiej, jakość wyświetlanych informacji ucierpi. Dzieje się tak z powodu separatorów.
Najprostszym i najbardziej oczywistym sposobem na stworzenie pliku w formacie CSV z aplikacji Delphi jest tylko wykonanie iteracji nad komórkami w StringGrid, wpisanie ich zawartości do pliku i zapamiętywanie, aby umieścić separator. Pamiętaj o wyborze właściwej metody kodowania.
W każdym bądź razie, jak zwykle FastReport można tworzyć pliki CSV z aplikacji Lazarus i Delphi - lepiej i wygodniej. I nie tylko z obiektu StringGrid.
Jak wygenerować raport, który będzie dobrze wyglądać w formacie wynikowej tabeli?
Jest kilka sposobów:
1. Brak przecięć lub powtarzających się komórek się! Tak, projektant FastReport umożliwia przeciągania obiektów, co powoduję częściowe nakładanie się, ale narzędzia do eksportowania uwzględniają te wymagania podczas przesyłania obiektów z raportu FastReport do ostatecznego pliku tabeli przy użyciu specjalnych algorytmów do śledzenia przecięć obiektów i ich optymalnej lokalizacji. Na przecięciach obiektów w tabeli wynikowej pojawią się nowe kolumny i wiersze. Jest to niezbędne do utrzymania dokładnego pozycjonowania obiektów eksportowanych z fastreport.
2. Unikaj nakładania się komórek za pomocą siatki obiektów tekstowych i narzędzi do wyrównywania. Upewnij się, że wyrównanie siatki jest włączone. Można zwiększyć odstępy między siatkami, aby ułatwić wyrównanie.
3. Podczas tworzenia tabel w raportach upewnij się, że sąsiednie granice łączą się ze sobą. Ważne jest, aby komórki nie nakładały się na siebie. Algorytm filtru eksportu wytnie komórki, ale wynik eksportu może być daleki od tego, czego oczekiwałeś (nie zobaczysz dokładnie tego, czego chciałeś).
4. Rozmieść obiekty tak, aby były na tej samej linii, zarówno pionowo, jak i poziomo.
Przed zapisaniem w formacie .csv powinieneś mieć już skompilowany projekt ze składnikiem "eksportuj do pliku CSV" z FastReport. Raport powinien być również wygenerowany (istnieje osobny artykuł na temat generowania raportów). Powtórzymy, tak, można użyć wewnętrznych źródeł aplikacji i baz danych jako źródła danych dla raportu (również CSV). Dowolny. Uruchom i zapisz w podglądzie, tak jak opisane w instrukcji. Następnie wywołaj eksport z okna podglądu (na końcu tego artykułu opisany sposób, jak to zrobić za pomocą kodu). Powinno pojawić się okno ustawień:
Narzędzia FastReport pozwalają wybrać strony naszego dokumentu do wysłania do programu Excel, tylko określone strony lub zakres.
Właściwości eksportu: czy używać strony kodowej OEM (kodowanie systemu Windows jest ustawione jako domyślne) i ustawić separator (domyślnie jest to ";"), zależy czego potrzebujesz.
Jak zwykle można określić, gdzie zapisać plik CSV (w local storage, wysłać na e-mail, przekazać do FTP lub chmury).
Otwórz po wyeksportowaniu: wynikowy plik zostanie otwarty natychmiast po wyeksportowaniu.
Zapisywanie w formacie .csv przy użyciu kodu
Zapisywanie w pliku CSV | |
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 |
procedura TForm1. Button8Click(Nadawca: TObject); zaczynać {Generowanie raportu. Raport musi zostać wygenerowany przed wyeksportem} frxReport1. Przygotowanieraport(); {Ustaw zakres stron do wyeksportowania. Domyślnie eksportowane są wszystkie strony wygenerowanego raportu} frxCSVExport1. Liczba stron := '2-3'; {Ustaw, czy tekst ma być eksportowany w kodowaniu OEM lub Windows} frxCSVExport1. Strona OEMCodepage := Fałsz; {Ustaw separator} frxCSVExport1. Separator := ';' ; {Ustaw, czy plik wynikowy ma być otwarty po wyeksportowaniu} frxCSVExport1. OpenAfterExport := Fałsz; {Ustawianie, czy ma być wyświetlany postęp eksportu (pokaż, która strona jest obecnie eksportowana)} frxCSVExport1. ShowProgress := Fałsz; {Ustawianie, czy ma być wyświetlane okno dialogowe ustawień filtru eksportu} frxCSVExport1. ShowDialog := Fałsz; {Ustaw nazwę wynikowego pliku. Należy pamiętać, że jeśli nazwa pliku nie zostanie ustawiona i nie wyłączysz okna dialogowego filtru eksportu, będzie nadal wyświetlane okno dialogowe wyboru nazwy pliku} frxCSVExport1. Nazwa pliku := 'C:\Output\test.csv'; {Eksportowanie raportu} frxReport1. Eksport(frxCSVExport1); koniec; |
Jak widać, jest to jeszcze łatwiejsze niż eksport do CSV z sieci! Wypróbuj ten sposób!