Excel informuje, że format pliku nie pasuje do rozszerzenia
8.08.2023

Excel informuje, że format pliku nie pasuje do rozszerzenia

Połowa plików .xls eksportowanych przez narzędzia raportujące wcale nie jest plikami Excel. Jak dowiedzieć się, co naprawdę masz i co kosztuje każdy oszust.

System wysłał Ci e‑mail z plikiem report.xls, dwukrotnie go kliknąłeś i Excel wyświetlił ostrzeżenie: format pliku i rozszerzenie 'report.xls' nie pasują. Otwórz go mimo to, a zadziała albo wypełni ekran znacznikami. Prześlij go zamiast tego do przeglądarka Excel — ona odczytuje, co faktycznie jest w pliku, a nie to, jak się nazywa. XLS, XLSX, CSV, ODS oraz warianty makr, binarne i szablonowe, do 20 MB, usuwane po zamknięciu zakładki.

PRZEGLĄDARKA ONLINE XLS XLSX DOKUMENT EXCEL
PRZEGLĄDARKA ONLINE XLS XLSX DOKUMENT EXCEL

Rozszerzenie jest twierdzeniem, a nie faktem

Nic nie powstrzymuje programu przed zapisywaniem dowolnych bajtów i nadawaniem wynikowi nazwy .xls, a wiele z nich tak właśnie robi. Narzędzia raportujące, systemy ERP, portale bankowe i panele administracyjne wszystkie oferują „Eksport do Excela”, a najtańszym sposobem wdrożenia tej funkcji jest wygenerowanie czegoś innego i nadanie mu rozszerzenia Excel, ponieważ Excel zazwyczaj otworzy taki plik.

Od wersji Excel 2007 plik jest sprawdzany przed otwarciem, co jest źródłem tego ostrzeżenia. To nie jest komunikat o uszkodzeniu. Excel po prostu informuje, że nazwa jest nieprawidłowa.

Dowiedz się, co naprawdę masz

Otwórz plik w edytorze tekstu — Notatnik wystarczy — i przyjrzyj się pierwszej linii. Pięć rzeczy wyjaśnia prawie całość.

  • <html, <head> lub <table — tabela HTML z nazwą arkusza kalkulacyjnego. Przeglądarki i raporty internetowe generują je nieustannie.
  • <?xml — SpreadsheetML, format skoroszytu XML używany w Excel 2003.
  • PK — archiwum ZIP, czyli prawdziwy XLSX (lub ODS, lub DOCX) z niewłaściwym rozszerzeniem.
  • Nieczytelny binarny zaczynający się od bajtów D0 CF 11 E0 — prawdziwy XLS sprzed 2007. Ten plik jest tym, za co się podaje.
  • Zwykły czytelny tekst z przecinkami, średnikami lub tabulacjami między wartościami — plik tekstowy z separatorami, czyli CSV pod inną nazwą.

Co kosztuje każdy oszust

Kluczowe jest to, że każdy z nich traci inne elementy.

Tabela HTML zawiera wartości i część formatowania, ale nie zawiera żadnych formuł. System eksportujący obliczył liczby i zapisał wyniki. Nie ma nic pod spodem, co mogłoby je przeliczyć, i nic nie zostało utracone w tranzycie — nigdy nie zostało zapisane.

SpreadsheetML zachowuje formuły i formaty komórek. Nie może jednak przenosić wykresów i tabel przestawnych; format nie ma sposobu ich przechowywania, więc zostały pominięte przy zapisywaniu pliku, a nie przy jego otwieraniu.

Źle nazwany XLSX nie traci nic. To pełny nowoczesny skoroszyt, a jedyną wadą jest sześć znaków w nazwie pliku.

Plik tekstowy z separatorami zawiera tylko wartości i nic więcej: brak formuł, brak formatowania, brak drugiego arkusza. Jeśli wygląda jak jedna kolumna tekstu z przecinkami, separator nie był tym, którego oczekuje Twoja wersja Excela.

Naprawianie jednorazowo

Aby zachować cokolwiek, otwórz plik w Excelu, pomijając ostrzeżenie, a następnie wybierz Plik → Zapisz jako → Skoroszyt Excel (.xlsx). Teraz masz prawdziwy skoroszyt i ostrzeżenie zniknęło na zawsze.

W przypadku źle nazwanego XLSX po prostu zmień nazwę i gotowe. Zmiana nazwy nie jest konwersją i prawie nigdy nie pomaga — to jedyny przypadek, w którym pomaga, ponieważ zawartość była już prawidłowa.

Ten, który nie jest oszustem

.xlsb wygląda podejrzanie, ale tak nie jest. To prawdziwy skoroszyt Excel przechowywany w formacie binarnym zamiast spakowanego XML: te same dane, zauważalnie mniejszy rozmiar i szybsze otwieranie przy dużych modelach. Jeśli kolega wyśle Ci taki plik, nie ma w nim nic nie tak.

Niezależnie od tego, czym okazał się plik, przeglądarka Excel otworzy go i wyświetli arkusze.