Sửa lỗi Excel Recovery Mode: "Excel was able to open the file by repairing or removing the unreadable content"

intermediate📊 Microsoft Excel2026-03-22| Microsoft Excel 2016 / 2019 / 2021 / Microsoft 365, Windows 10/11, macOS 12+

Error Message

Excel was able to open the file by repairing or removing the unreadable content
#excel#recovery#sửa chữa#file bị hỏng

TL;DR

Excel đã mở file của bạn nhưng hiện hộp thoại sửa chữa — file .xlsx / .xls bị hỏng cấu trúc bên trong. Thực hiện các cách sửa sau theo thứ tự từ ít phá vỡ dữ liệu nhất đến nhiều nhất:

  • Dùng File → Open → Open and Repair thủ công — bạn kiểm soát được những gì bị xóa.
  • Sao chép toàn bộ dữ liệu trong các sheet sang một workbook mới.
  • Nếu Excel đã tự sửa và bạn đã nhấn OK, hãy kiểm tra log sửa chữa mà nó hiển thị trước khi bạn chấp nhận — log đó liệt kê chính xác những gì đã bị xóa.

Điều Gì Đã Xảy Ra

Khi Excel hiển thị:

Excel was able to open the file by repairing or removing the unreadable content

...cấu trúc XML dạng ZIP bên trong file .xlsx của bạn có một hoặc nhiều phần bị hỏng. Đây là những nguyên nhân thường gặp:

  • File bị cắt ngắn trong quá trình lưu qua mạng — SharePoint và ổ đĩa ánh xạ là thủ phạm thường gặp nhất.
  • Hai người cùng mở một file và một lần lưu đã ghi đè một phần lên lần lưu kia.
  • Phần mềm diệt virus hoặc sao lưu khóa file trong khi Excel vẫn đang ghi.
  • Ổ đĩa hết dung lượng (0 byte) giữa chừng khi đang lưu. Điều này xảy ra thường xuyên hơn bạn nghĩ trên các ổ đĩa dùng chung.
  • File .xls cũ từ Excel 97–2003 với cấu trúc FAT bị hỏng.

Tính năng tự sửa của Excel hoạt động âm thầm. Nó xóa bỏ những gì không thể phân tích được — không cảnh báo, không hoàn tác. Tùy theo mức độ hỏng, bạn có thể mất biểu đồ, pivot table, quy tắc định dạng có điều kiện, hoặc toàn bộ sheet.

Bước 1 — Đọc Log Sửa Chữa Trước Khi Nhấn OK

Excel hiển thị bản tóm tắt sửa chữa có thể thu gọn trước khi bạn được truy cập vào file. Chưa nhấn OK vội. Nhấn "Click here to see what content was removed" — nó mở một file log XML liệt kê tất cả những gì đã bị xóa. Lưu log đó lại. Bạn sẽ cần đến nó khi sếp hỏi tại sao pivot table của Q3 biến mất.

Bước 2 — Mở và Sửa Chữa Thủ Công

Đóng file đã được tự sửa mà không lưu. Bây giờ hãy tự làm, với nhiều quyền kiểm soát hơn:

  • Mở Excel mà không tải file nào.
  • Vào File → Open → Browse và điều hướng đến file.
  • Nhấn vào mũi tên thả xuống bên cạnh nút Open. Chọn "Open and Repair".
  • Thử "Repair" trước — tùy chọn này giữ lại công thức và định dạng. Chỉ chọn "Extract Data" nếu Repair thất bại. Extract Data loại bỏ mọi thứ và chỉ giữ lại giá trị thô.

Bước 3 — Sao Chép File Về Đường Dẫn Cục Bộ Trước

Đường dẫn mạng gây ra nhiều báo cáo lỗi hỏng giả hơn là hỏng file thực sự. Trước khi cho rằng dữ liệu bị mất, hãy sao chép file về máy cục bộ và thử lại:

# Windows — sao chép từ chia sẻ mạng về thư mục tạm cục bộ
copy "\\\\server\\share\\report.xlsx" "C:\\Temp\\report_local.xlsx"

# macOS
cp "/Volumes/NAS/report.xlsx" "~/Desktop/report_local.xlsx"

Nếu bản sao cục bộ mở được mà không có hộp thoại sửa chữa, vấn đề ban đầu là do đường dẫn mạng — không phải do file bị hỏng. Lưu file lại với tên mới.

Bước 4 — Kiểm Tra Cấu Trúc Bên Trong XLSX

File .xlsx thực chất chỉ là một kho lưu trữ ZIP chứa XML bên trong. Bạn có thể mở ra và tìm chính xác phần nào bị hỏng:

# Windows (PowerShell)
Rename-Item report.xlsx report.zip
Expand-Archive report.zip -DestinationPath .\report_unzipped

# macOS / Linux
cp report.xlsx report.zip
unzip report.zip -d report_unzipped

Tập trung vào bốn file này trước — chúng chiếm 90% các trường hợp hỏng:

xl/workbook.xml       # Cấu trúc workbook
xl/worksheets/        # Một file XML cho mỗi sheet
xl/sharedStrings.xml  # Tất cả giá trị ô dạng văn bản
xl/styles.xml         # Quy tắc định dạng ô

Mở chúng trong VS Code. Nội dung bị cắt ngắn hoặc lỗi mã hóa gần cuối file là dấu hiệu rõ ràng nhất. Hỏng nhẹ? Sửa XML trực tiếp rồi nén lại:

# Nén lại sau khi sửa thủ công (Linux/macOS)
cd report_unzipped
zip -r ../report_fixed.xlsx .

Đổi tên thành .xlsx và kiểm tra trong Excel.

Bước 5 — Khôi Phục Phiên Bản Trước

Đôi khi cách nhanh nhất là quay ngược thời gian. Kiểm tra các nguồn sau:

  • OneDrive: nhấp chuột phải vào file trên OneDrive web → Version History → khôi phục phiên bản trước thời điểm file bị hỏng. OneDrive lưu tới 500 phiên bản cho người dùng Microsoft 365.
  • Windows File History: nhấp chuột phải vào file trong Explorer → "Restore previous versions".
  • SharePoint: mở thư viện tài liệu → chọn file → Version History → khôi phục.

Bước 6 — Trích Xuất Dữ Liệu Thô Bằng Python

Nếu file bị hỏng quá nặng để Excel tự sửa, đáng thử dùng openpyxl. Thư viện này chấp nhận XML không hợp lệ dễ dàng hơn Excel:

pip install openpyxl
import openpyxl

wb = openpyxl.load_workbook('report.xlsx', data_only=True, read_only=True)
for sheet_name in wb.sheetnames:
    ws = wb[sheet_name]
    print(f"--- Sheet: {sheet_name} ---")
    for row in ws.iter_rows(values_only=True):
        print(row)

Bạn sẽ không lấy được công thức hay định dạng. Nhưng các số liệu và văn bản thô thường vẫn có thể phục hồi được ngay cả khi Excel đã bỏ cuộc.

Ngăn Chặn Sự Cố Tái Diễn

  • Lưu cục bộ, sao chép lại sau. Khi làm việc trên ổ đĩa mạng, hãy lưu vào C:\Temp\ trước, rồi sao chép file hoàn chỉnh trở lại. Cách này loại bỏ phần lớn các lỗi hỏng liên quan đến mạng.
  • Đặt AutoRecover mỗi 5 phút: File → Options → Save. Đảm bảo vị trí AutoRecover trỏ đến ổ đĩa cục bộ, không phải đường dẫn mạng.
  • Dùng định dạng .xlsx cho mọi file quan trọng. Định dạng nhị phân .xls cũ bị hỏng dễ hơn nhiều.
  • Trên OneDrive, tắt "Files On-Demand" cho các thư mục chứa file Excel đang hoạt động. Một file tải về chưa hoàn chỉnh sẽ gây ra lỗi này mỗi lần mở.

Kiểm Tra Kết Quả

Việc sửa chữa thành công khi:

  • Excel mở file mà không có hộp thoại sửa chữa.
  • Tất cả các sheet đều hiển thị và dữ liệu khớp với kỳ vọng của bạn.
  • Công thức tính toán chính xác — nhấn Ctrl+Alt+F9 để buộc tính toán lại toàn bộ.
  • Biểu đồ và pivot table hiển thị không có lỗi.

Lưu file đã phục hồi với tên mới ngay lập tức. Đừng ghi đè lên file gốc cho đến khi bạn đã xác nhận dữ liệu còn nguyên vẹn.

Related Error Notes