Một hệ thống gửi email cho bạn tệp report.xls, bạn nhấp đúp vào nó, và Excel hiện ra một cảnh báo:
định dạng tệp và phần mở rộng của 'report.xls' không khớp. Mở nó dù sao và nó
hoặc hoạt động bình thường hoặc lấp đầy màn hình bằng mã đánh dấu. Tải lên
Trình xem Excel thay vì — trình này đọc nội dung thực tế của tệp
thay vì chỉ dựa vào tên. XLS, XLSX, CSV, ODS và các biến thể macro, nhị phân và mẫu,
có dung lượng lên tới 20 MB, sẽ bị xóa khi bạn đóng tab.

Phần mở rộng là một khẳng định, không phải là thực tế
Không có gì ngăn cản một chương trình ghi bất kỳ byte nào nó muốn và đặt tên kết quả là .xls, và rất nhiều chương trình thực hiện như vậy. Các công cụ báo cáo, ERP, cổng ngân hàng và bảng điều khiển quản trị đều cung cấp tính năng “Xuất ra Excel”, và cách rẻ nhất để xây dựng tính năng này là tạo ra một loại tệp khác rồi gán phần mở rộng Excel, vì Excel thường sẽ mở nó.
Kể từ Excel 2007, tệp được kiểm tra trước khi mở, và đó là nguyên nhân của cảnh báo. Đó không phải là thông báo hỏng dữ liệu. Đó là Excel thông báo rằng tên tệp không đúng.
Tìm hiểu những gì bạn thực sự có
Mở tệp trong một trình soạn thảo văn bản — Notepad cũng đủ — và xem dòng đầu tiên. Năm loại nội dung sau đây chiếm gần như toàn bộ.
<html,<head>hoặc<table— một bảng HTML có tên bảng tính trên đó.
Trình duyệt và các báo cáo web liên tục tạo ra chúng.<?xml— SpreadsheetML, định dạng workbook XML mà Excel 2003 tạo ra.PK— một kho lưu ZIP, do đó là một XLSX thực sự (hoặc ODS, hoặc DOCX) với phần mở rộng sai.- Binary không đọc được bắt đầu bằng các byte
D0 CF 11 E0— một tệp XLS thực sự trước năm 2007.
Đây là tệp đúng như nó nói. - Văn bản thuần có thể đọc được với dấu phẩy, dấu chấm phẩy hoặc tab giữa các giá trị — một tệp văn bản phân tách, là CSV mang tên của người khác.
Mỗi kẻ mạo danh khiến bạn mất gì
Điều quan trọng là hiểu rằng chúng mất các yếu tố khác nhau.
Một bảng HTML chứa các giá trị và một phần định dạng, nhưng không có công thức nào. Hệ thống xuất dữ liệu đã tính toán các số và ghi lại kết quả. Không có gì phía dưới để tính lại, và không có gì bị mất trong quá trình truyền — nó chưa bao giờ được ghi.
SpreadsheetML giữ lại công thức và định dạng ô. Điều mà nó không thể chứa là biểu đồ và bảng pivot; định dạng này không có cách lưu chúng, vì vậy chúng bị loại bỏ khi tệp được ghi, không phải khi bạn mở nó.
Một XLSX bị đặt tên sai không mất gì. Đó là một workbook hiện đại đầy đủ và lỗi duy nhất là sáu ký tự trong tên tệp.
Một tệp văn bản phân tách chỉ có các giá trị và không có gì khác: không có công thức, không có định dạng, không có sheet thứ hai. Nếu nó trông như một cột văn bản có dấu phẩy, thì dấu phân cách không phải là dấu mà bản Excel của bạn mong đợi.
Sửa nó, một lần
Đối với bất kỳ tệp nào bạn cần giữ, mở nó trong Excel sau cảnh báo, sau đó vào Tệp, Lưu dưới dạng, Sổ làm việc Excel (.xlsx). Bạn sẽ có một workbook thực sự và cảnh báo sẽ biến mất mãi mãi.
Đối với một XLSX bị đặt tên sai, chỉ cần đổi tên và dừng lại. Đổi tên không phải là chuyển đổi và hầu như không bao giờ giúp ích — đây là trường hợp duy nhất mà nó có tác dụng, vì nội dung đã đúng từ đầu.
Cái không phải là kẻ mạo danh
.xlsb trông có vẻ đáng ngờ nhưng thực tế không phải. Đó là một workbook Excel thực sự được lưu dưới dạng nhị phân thay vì XML nén: dữ liệu giống nhau, kích thước đáng kể nhỏ hơn và mở nhanh hơn trên mô hình lớn. Nếu đồng nghiệp gửi cho bạn một tệp .xlsb, không có gì sai với nó.
Dù tệp cuối cùng là gì, Trình xem Excel sẽ mở nó và hiển thị các sheet cho bạn.