Cách Kiểm Tra Tác Giả (author) Của File Excel: Hướng Dẫn Chi Tiết Từ A Đến Z

Mục lục bài viết

1. Giới thiệu tổng quan về metadata trong Excel

Khi làm việc với các file Excel, đặc biệt là trong môi trường doanh nghiệp hay dự án cộng tác, việc biết được tác giả (author) của một file là rất quan trọng. Thông tin này không chỉ giúp xác định người chịu trách nhiệm tạo ra dữ liệu mà còn hỗ trợ trong việc:

  • Quản lý phiên bản: Tránh nhầm lẫn khi có nhiều người cùng chỉnh sửa một file.
  • Bảo mật: Phát hiện các file không rõ nguồn gốc, ngăn chặn rủi ro rò rỉ dữ liệu.
  • Tuân thủ quy trình: Đáp ứng yêu cầu kiểm toán, lưu trữ tài liệu theo chuẩn ISO, GDPR, v.v.

Microsoft Excel lưu trữ các thông tin này dưới dạng metadata (siêu dữ liệu) trong file. Metadata bao gồm các trường như Author, Last Modified By, Company, Title, Subject, và nhiều thông tin khác. Các trường này được lưu trong định dạng OpenXML (đối với .xlsx) hoặc Binary Interchange File Format (BIFF) (đối với .xls).

Trong bài viết này, chúng ta sẽ đi sâu vào cách kiểm tra tác giả của file Excel bằng nhiều phương pháp khác nhau:

  1. Sử dụng tính năng sẵn có trong Excel (File > Info, Properties, v.v.).
  2. Dùng Windows Explorer (Properties > Details).
  3. Sử dụng PowerShell (lệnh Get-ItemProperty và Get-Content).
  4. Sử dụng Python (thư viện openpyxl, xlrd, pywin32).
  5. Sử dụng công cụ dòng lệnh như exiftool.
  6. Phân tích metadata trong file .xlsx (đọc file ZIP và file core.xml).
  7. Xử lý các trường hợp đặc biệt: file được bảo vệ, macro, file .xls cũ, file được lưu dưới dạng CSV, v.v.

Bên cạnh việc đưa ra từng bước thực hiện, chúng ta cũng sẽ cung cấp mã nguồn mẫu, lưu ý an toàn, và cách tự động hoá quy trình cho doanh nghiệp.

2. Kiểm tra tác giả bằng giao diện Excel (cách nhanh nhất)

2.1. Mở file Excel và vào tab “File”

  1. Mở file Excel cần kiểm tra.
  2. Nhấn File (hoặc nhấn Alt + F).
  3. Chọn Info ở thanh bên trái.

2.2. Xem thông tin “Properties”

  • Ở phần Properties (có thể hiển thị dưới dạng “Related Document Properties”), bạn sẽ thấy các trường:
  • Author – người tạo file.
  • Last Modified By – người chỉnh sửa lần cuối.
  • Created – thời gian tạo.
  • Modified – thời gian chỉnh sửa lần cuối.

Nếu không thấy các trường này, nhấn Show All Properties để mở rộng danh sách.

2.3. Chỉnh sửa hoặc xóa thông tin tác giả

  • Để thay đổi tác giả, click vào giá trị hiện tại và nhập tên mới.
  • Để xóa thông tin, để trống trường và lưu lại file.

Lưu ý: Khi file được lưu lại, Excel sẽ tự động cập nhật trường Last Modified By dựa trên tài khoản Windows đang đăng nhập. Vì vậy, nếu bạn muốn giữ nguyên thông tin gốc, cần tắt tính năng Document Properties trong Trust Center hoặc sử dụng macro để ghi đè lại metadata.

3. Kiểm tra tác giả qua Windows Explorer

3.1. Mở cửa sổ Properties

  1. Trong Windows Explorer, locate file .xlsx hoặc .xls.
  2. Click chuột phải → Properties → tab Details.

3.2. Đọc các trường metadata

  • Authors: danh sách tên tác giả.
  • Last saved by: người lưu cuối.
  • Company: công ty (nếu được thiết lập).
  • Title, Subject, Comments: các trường tùy chỉnh.

3.3. Sửa hoặc xóa metadata trong Explorer

  • Click vào giá trị cần thay đổi → Edit → nhập giá trị mới hoặc để trống.
  • Nhấn OK để lưu.

Cảnh báo: Việc thay đổi metadata trực tiếp trong Explorer có thể gây mất đồng bộ với nội dung thực tế trong file, đặc biệt khi file có macro hoặc được bảo vệ.

4. Sử dụng PowerShell để trích xuất tác giả

PowerShell là công cụ mạnh mẽ cho việc tự động hoá trên Windows. Dưới đây là các lệnh cơ bản:

4.1. Lệnh Get-ItemProperty

$path = "C:\Data\Report.xlsx"
$props = Get-ItemProperty -Path $path
$props.Author
$props.LastWriteTime

4.2. Đọc metadata OpenXML với System.IO.Packaging

Add-Type -AssemblyName System.IO.Packaging function Get-ExcelMetadata { param(string$FilePath) $package = System.IO.Packaging.Package::Open($FilePath, System.IO.FileMode::Open, System.IO.FileAccess::Read) $corePart = $package.GetRelationshipsByType("http://schemas.openxmlformats.org/package/2006/relationships/metadata/core-properties") | ForEach-Object { $package.GetPart($_.TargetUri) } $xml = xml(Get-Content $corePart.GetStream()) $author = $xml.coreProperties.creator $lastModifiedBy = $xml.coreProperties.lastModifiedBy $package.Close() return PSCustomObject@{ Author = $author LastModifiedBy = $lastModifiedBy }
} Get-ExcelMetadata -FilePath "C:\Data\Report.xlsx"

Kết quả trả về sẽ là một đối tượng có hai thuộc tính: Author và LastModifiedBy.

4.3. Script batch để kiểm tra nhiều file

$folder = "C:\Data\ExcelFiles"
Get-ChildItem -Path $folder -Filter .xlsx -Recurse | ForEach-Object { $meta = Get-ExcelMetadata -FilePath $_.FullName PSCustomObject@{ FileName = $_.Name Author = $meta.Author LastModifiedBy = $meta.LastModifiedBy Path = $_.FullName }
} | Export-Csv -Path "C:\Data\Excel_Metadata_Report.csv" -NoTypeInformation

Script trên sẽ tạo một báo cáo CSV liệt kê tác giả của tất cả file trong thư mục chỉ định.

5. Kiểm tra tác giả bằng Python

Python cung cấp nhiều thư viện để làm việc với file Excel, trong đó openpyxl và pywin32 (trên Windows) là hai lựa chọn phổ biến.

5.1. Dùng openpyxl (đối với .xlsx)

from openpyxl import load_workbook def get_excel_author(file_path): wb = load_workbook(filename=file_path, read_only=True, data_only=True) props = wb.properties return { "author": props.author, "last_modified_by": props.lastModifiedBy, "created": props.created, "modified": props.modified } if __name__ == "__main__": file = r"C:\Data\Report.xlsx" info = get_excel_author(file) print(f"Author: {info'author'}") print(f"Last Modified By: {info'last_modified_by'}")

Lưu ý: openpyxl chỉ đọc metadata trong core.xml. Nếu file được bảo vệ bằng mật khẩu, bạn cần mở bằng load_workbook với tùy chọn keep_vba=True (đối với file chứa macro).

5.2. Dùng pywin32 (truy cập COM)

import win32com.client as win32 def get_excel_author_com(file_path): excel = win32.gencache.EnsureDispatch('Excel.Application') wb = excel.Workbooks.Open(file_path, ReadOnly=True) author = wb.BuiltinDocumentProperties("Author").Value last_mod = wb.BuiltinDocumentProperties("Last Author").Value wb.Close(False) excel.Quit() return author, last_mod if __name__ == "__main__": author, last = get_excel_author_com(r"C:\Data\Report.xlsx") print(f"Author: {author}") print(f"Last Modified By: {last}")

Phương pháp COM cho phép truy cập đầy đủ hơn vào các thuộc tính, bao gồm cả các trường tùy chỉnh (CustomDocumentProperties).

5.3. Dùng pandas để đọc file .xls (BIFF)

Check Author Of Excel File
Check Author Of Excel File
import pandas as pd def get_xls_author(file_path): # pandas không hỗ trợ metadata, cần dùng xlrd hoặc olefile import xlrd book = xlrd.open_workbook(file_path, formatting_info=False) # Metadata không có trong xlrd, cần đọc OLE stream # Sử dụng olefile để đọc dữ liệu OLE import olefile ole = olefile.OleFileIO(file_path) if ole.exists('\x05SummaryInformation'): stream = ole.openstream('\x05SummaryInformation') data = stream.read() # Phân tích binary để lấy Author (đòi hỏi parsing phức tạp) # Thường không thực hiện trong script nhanh. ole.close() return "Không hỗ trợ trực tiếp qua pandas" print(get_xls_author(r"C:\Data\OldFile.xls"))

Với file .xls (định dạng cũ), việc trích xuất metadata phức tạp hơn và thường cần dùng olefile hoặc exiftool.

6. Sử dụng exiftool – Công cụ đa nền tảng

exiftool là một công cụ dòng lệnh mạnh mẽ, hỗ trợ đọc và chỉnh sửa metadata của hầu hết các định dạng file, bao gồm Excel.

6.1. Cài đặt exiftool

  • Windows: Tải file exiftool(-k).exe từ trang chính, đổi tên thành exiftool.exe.
  • macOS: brew install exiftool
  • Linux: sudo apt-get install libimage-exiftool-perl

6.2. Đọc tác giả

exiftool -Author -LastModifiedBy "C:\Data\Report.xlsx"

Kết quả:

Author : Nguyễn Văn A
Last Modified By : Trần Thị B

6.3. Ghi đè hoặc xóa tác giả

# Ghi đè
exiftool -Author="Lê Văn C" "C:\Data\Report.xlsx" # Xóa trường
exiftool -Author= "C:\Data\Report.xlsx"

6.4. Kiểm tra metadata của nhiều file

exiftool -csv -Author -LastModifiedBy -FileName "C:\Data\ExcelFiles\.xlsx" > report.csv

File report.csv sẽ chứa danh sách file và thông tin tác giả, rất hữu ích cho việc audit.

7. Phân tích cấu trúc nội bộ của file .xlsx (OpenXML)

File .xlsx thực chất là một tập tin ZIP chứa nhiều thành phần XML. Metadata nằm trong docProps/core.xml.

7.1. Mở file .xlsx bằng trình duyệt ZIP

unzip -l Report.xlsx

Bạn sẽ thấy:

docProps/core.xml
docProps/app.xml
xl/workbook.xml
...

7.2. Đọc core.xml

unzip -p Report.xlsx docProps/core.xml | xmllint --format -

Kết quả (đoạn quan trọng):

<dc:creator>Nguyễn Văn A</dc:creator>
<cp:lastModifiedBy>Trần Thị B</cp:lastModifiedBy>
<dcterms:created xsi:type="dcterms:W3CDTF">2026-03-15T10:23:00Z</dcterms:created>
<dcterms:modified xsi:type="dcterms:W3CDTF">2026-06-20T14:45:32Z</dcterms:modified>

7.3. Thay đổi metadata bằng cách chỉnh sửa core.xml

  1. Giải nén file:

bash mkdir temp_folder unzip Report.xlsx -d temp_folder

  1. Sửa core.xml bằng editor (vim, Notepad++, VS Code).

  2. Nén lại:

bash cd temp_folder zip -r ../Report_Modified.xlsx

Sau khi nén, file mới sẽ chứa thông tin tác giả đã được cập nhật.

Cảnh báo: Việc tự tay chỉnh sửa core.xml có thể làm hỏng file nếu không tuân thủ đúng namespace và schema. Luôn sao lưu file gốc trước khi thực hiện.

8. Xử lý các trường hợp đặc biệt

8.1. File được bảo vệ bằng mật khẩu

  • Khi file được đặt password để mở, hầu hết các công cụ (PowerShell, Python, exiftool) không thể truy cập metadata mà không có mật khẩu.
  • Giải pháp:
  • Mở file trong Excel, nhập mật khẩu, sau đó Save As dưới dạng không bảo vệ và kiểm tra metadata.
  • Hoặc dùng Office Automation (COM) để mở file với mật khẩu:

    python
    wb = excel.Workbooks.Open(file_path, False, True, Password='mypwd')

8.2. File chứa macro (.xlsm)

  • Metadata vẫn nằm trong core.xml, nhưng nếu macro thay đổi giá trị thuộc tính (ví dụ: Application.ActiveWorkbook.BuiltinDocumentProperties("Author") = "..."), thì thông tin sẽ được cập nhật khi macro chạy.
  • Để đảm bảo tính toàn vẹn, nên tắt macro khi kiểm tra metadata, hoặc phân tích macro để biết có thao tác nào thay đổi thuộc tính không.

8.3. File .xls (định dạng cũ)

  • Metadata được lưu trong OLE Property Set (\x05SummaryInformation và \x05DocumentSummaryInformation).
  • exiftool vẫn có thể đọc được:

bash exiftool -Author -LastModifiedBy "C:\Data\OldFile.xls"

  • Nếu muốn dùng Python, có thể dùng olefile để trích xuất:

“`python
import olefile

def get_ole_author(file_path):
ole = olefile.OleFileIO(file_path)
if ole.exists(‘\x05SummaryInformation’):
stream = ole.openstream(‘\x05SummaryInformation’)
data = stream.read()
# Parsing binary structure theo spec OLE Property Set
# Thực hiện bằng thư viện oletools:
from oletools import oleid
# … (code phức tạp)
ole.close()
“`

8.4. File CSV hoặc TXT (không có metadata)

  • Các định dạng plain text không lưu metadata. Để biết tác giả, bạn phải dựa vào:
  • Tên file (ví dụ: Report_20240620_Author_NguyenVanA.csv).
  • Thông tin trong nội dung (cột “Created By”).
  • Hệ thống quản lý tài liệu (SharePoint, Google Drive) có thể lưu metadata riêng.

9. Tự động hoá quy trình kiểm tra tác giả trong môi trường doanh nghiệp

9.1. Kịch bản PowerShell cho server

Giả sử bạn có một thư mục chia sẻ \\Server\Shared\ExcelDocs. Bạn muốn định kỳ (hàng ngày) kiểm tra và lưu báo cáo vào SharePoint.

# File: Get-ExcelAuthors.ps1
param( string$SourceFolder = "\\Server\Shared\ExcelDocs", string$ReportPath = "C:\Reports\ExcelAuthors_$(Get-Date -Format yyyyMMdd).csv"
) Import-Module -Name ImportExcel # Nếu muốn xuất file Excel thay vì CSV $files = Get-ChildItem -Path $SourceFolder -Recurse -Include .xlsx, .xlsm, .xls $report = foreach ($f in $files) { try { $meta = Get-ExcelMetadata -FilePath $f.FullName PSCustomObject@{ FileName = $f.Name Path = $f.FullName Author = $meta.Author LastModifiedBy = $meta.LastModifiedBy Created = $meta.Created Modified = $meta.Modified } } catch { Write-Warning "Cannot read $($f.FullName): $_" }
} $report | Export-Csv -Path $ReportPath -NoTypeInformation -Encoding UTF8 # Đẩy lên SharePoint (sử dụng PnP PowerShell)
Connect-PnPOnline -Url "https://contoso.sharepoint.com/sites/Docs" -Interactive
Add-PnPFile -Path $ReportPath -Folder "Shared Documents/ExcelMetadata"

Kịch bản trên:

  • Dò qua toàn bộ thư mục.
  • Ghi lại tác giả và thời gian.
  • Đẩy báo cáo lên SharePoint để các bộ phận kiểm toán có thể truy cập.

9.2. Tích hợp vào CI/CD (GitLab CI)

Nếu công ty lưu trữ file Excel trong Git repository, bạn có thể tạo một job để kiểm tra metadata trước khi merge:

stages: - metadata_check metadata_check: stage: metadata_check image: python:3.11 script: - pip install openpyxl - python check_metadata.py only: - merge_requests

check_metadata.py:

import sys, os, json
from openpyxl import load_workbook def check_file(file_path): wb = load_workbook(file_path, read_only=True, data_only=True) author = wb.properties.author or "UNKNOWN" # Kiểm tra quy tắc: author phải là email công ty if not author.endswith("@contoso.com"): return False, author return True, author failed = for root, _, files in os.walk('.'): for f in files: if f.lower().endswith(('.xlsx', '.xlsm')): ok, author = check_file(os.path.join(root, f)) if not ok: failed.append(f"{os.path.join(root, f)} -> Author: {author}") if failed: print("Metadata check FAILED:") for line in failed: print(line) sys.exit(1)
else: print("All Excel files have valid authors.")

Nếu bất kỳ file nào không đáp ứng tiêu chuẩn, pipeline sẽ fail, ngăn việc merge.

10. Các công cụ và tài nguyên tham khảo

Công cụNền tảngMô tả ngắn
Excel (File > Info)Windows/macOSGiao diện người dùng tích hợp, nhanh nhất cho kiểm tra thủ công.
Windows Explorer > PropertiesWindowsĐọc nhanh metadata mà không mở file.
PowerShellWindowsTự động hoá, tích hợp sâu vào hệ thống Windows.
Python (openpyxl, pywin32)Cross‑platform (Windows + macOS + Linux)Linh hoạt, dễ viết script tùy chỉnh.
exiftoolCross‑platformĐọc/ghi đa định dạng, hỗ trợ batch.
7‑Zip / WinRARWindowsMở file .xlsx như ZIP để xem core.xml.
OleFile (Python)Cross‑platformXử lý file .xls cũ.
PnP PowerShellWindowsĐẩy báo cáo lên SharePoint.
GitLab CI / GitHub ActionsCloudKiểm tra metadata trong pipeline CI/CD.

11. Những lưu ý về bảo mật và tuân thủ pháp luật

  1. Bảo mật dữ liệu cá nhân: Thông tin tác giả có thể là dữ liệu cá nhân (PII). Khi thu thập, lưu trữ, hoặc chia sẻ thông tin này, phải tuân thủ các quy định như GDPR, CCPA, hoặc Luật An toàn Thông tin của quốc gia.
  2. Quyền truy cập: Chỉ cho phép người có quyền (admin, auditor) thực hiện trích xuất metadata. Sử dụng Group Policy hoặc ACL để hạn chế truy cập.
  3. Lưu trữ báo cáo: Mã hoá file báo cáo (AES‑256) khi lưu trữ trên đám mây hoặc server chia sẻ.
  4. Xóa metadata khi cần: Khi chia sẻ file với bên ngoài, cân nhắc xóa hoặc làm mờ các trường như Author, Company để bảo vệ thông tin nội bộ.

12. Kết luận

Việc kiểm tra tác giả của file Excel không chỉ là một thao tác kỹ thuật đơn giản mà còn là một phần quan trọng trong quản trị dữ liệu, bảo mật và tuân thủ quy trình. Bằng cách nắm vững các phương pháp:

  • Sử dụng giao diện Excel hoặc Windows Explorer cho nhu cầu nhanh.
  • Áp dụng PowerShell hoặc Python để tự động hoá trên quy mô lớn.
  • Dùng exiftool cho giải pháp đa nền tảng và mạnh mẽ.
  • Hiểu cấu trúc OpenXML để có thể chỉnh sửa trực tiếp khi cần.

Bạn sẽ có một bộ công cụ toàn diện để xác định, ghi nhận và quản lý tác giả của mọi file Excel trong môi trường làm việc. Đừng quên luôn bảo vệ metadata khi chia sẻ tài liệu ra bên ngoài và định kỳ audit để duy trì tính toàn vẹn của hệ thống tài liệu.

Chúc bạn thành công trong việc triển khai và duy trì quy trình kiểm tra tác giả file Excel!

⚠️
LƯU Ý QUAN TRỌNG: Miễn trừ trách nhiệm: Mặc dù chúng tôi luôn nỗ lực để đảm bảo tính chính xác và cập nhật của thông tin, nhưng các quy định về giáo dục và tuyển sinh có thể thay đổi theo thời gian. BigSchool không chịu trách nhiệm về bất kỳ sai sót nào hoặc kết quả phát sinh từ việc sử dụng thông tin trên trang này. Độc giả nên liên hệ trực tiếp với nhà trường hoặc cơ quan chức năng để có thông tin mới nhất. Ngoài ra, BigSchool tuyệt đối không bán sản phẩm, khóa học hay cung cấp dịch vụ được nhắc đến trong bài.

Viết một bình luận