Giới thiệu về lệnh Import-CSV PowerShell

Lệnh Import-CSV là một trong những cmdlet quan trọng nhất trong PowerShell, cho phép đọc tệp CSV (Comma-Separated Values) và chuyển đổi dữ liệu thành các đối tượng tùy chỉnh (custom objects) trong pipeline. Khi làm việc với dữ liệu dạng bảng, việc sử dụng lệnh Import-CSV PowerShell giúp tự động hóa quá trình nhập dữ liệu mà không cần viết code phức tạp. Cmdlet này xử lý từng dòng trong tệp CSV, lấy dòng đầu tiên làm tiêu đề cột (header) và tạo ra các đối tượng với các thuộc tính tương ứng.
Đây là công cụ không thể thiếu đối với quản trị viên hệ thống, nhà phát triển và bất kỳ ai thường xuyên xử lý dữ liệu cấu trúc trong môi trường Windows. Thay vì phải parse thủ công từng dòng, bạn chỉ cần một dòng lệnh duy nhất để đọc và thao tác với hàng nghìn bản ghi.
Cú pháp và các tham số của lệnh Import-CSV trong PowerShell

Cú pháp cơ bản
Import-CSV -Path "đường_dẫn_đến_file.csv"
Chỉ với -Path, lệnh sẽ đọc tệp CSV với dấu phẩy làm ký tự phân cách mặc định và sử dụng dòng đầu tiên làm tên thuộc tính.
Các tham số mở rộng
| Tham số | Kiểu dữ liệu | Mô tả |
|---|---|---|
| -Path | String[] | Đường dẫn hoặc danh sách các tệp cần nhập |
| -Delimiter | Char | Ký tự phân cách cột (mặc định là dấu phẩy) |
| -Encoding | Encoding | Mã hóa tệp (UTF8, ASCII, Unicode…) |
| -Header | String[] | Mảng tên cột thay thế cho tiêu đề hiện có |
| -UseCulture | Switch | Sử dụng ký tự phân cách theo văn hóa hệ thống |
| -LiteralPath | String[] | Đường dẫn chính xác, không mở rộng wildcard |
Tham số -Delimiter rất hữu ích khi làm việc với các tệp CSV không dùng dấu phẩy, ví dụ như tệp TSV (tab-separated) dùng ký tự tab (`t`) hoặc các tệp dùng dấu chấm phẩy.
Tham số -Encoding giúp xử lý các tệp có mã hóa đặc biệt, tránh lỗi hiển thị ký tự tiếng Việt hay Unicode.
Cách hoạt động của lệnh Import-CSV

Khi thực thi lệnh Import-CSV PowerShell, PowerShell đọc toàn bộ nội dung tệp dưới dạng chuỗi, phân tích từng dòng dựa trên ký tự phân cách. Dòng đầu tiên được xem là tiêu đề và trở thành tên các thuộc tính của đối tượng. Mỗi dòng tiếp theo tạo thành một đối tượng với các giá trị gán vào thuộc tính tương ứng.
Ví dụ với tệp CSV có nội dung:
Tên, Tuổi, Thành phố
Nguyễn Văn A, 30, Hà Nội
Trần Thị B, 25, TP.HCM
Lệnh Import-CSV sẽ tạo ra hai đối tượng với ba thuộc tính: Tên, Tuổi, Thành phố. Mỗi đối tượng có thể được truy cập qua pipeline hoặc gán vào biến.
Điều đặc biệt là dữ liệu sau khi nhập vẫn giữ nguyên kiểu chuỗi (string), trừ khi bạn chủ động chuyển đổi. Điều này có nghĩa là Tuổi dù là số vẫn là chuỗi, cần dùng [int] để ép kiểu nếu muốn tính toán.
Ví dụ cụ thể về lệnh Import-CSV PowerShell

Ví dụ 1: Đọc tệp CSV cơ bản
Giả sử bạn có tệp Employees.csv tại C:Data. Lệnh đơn giản nhất:
Import-CSV -Path “C:DataEmployees.csv”
Kết quả là danh sách các đối tượng hiển thị dạng bảng trong console.
Ví dụ 2: Chỉ định ký tự phân cách là dấu chấm phẩy
Nếu tệp CSV sử dụng dấu chấm phẩy (ví dụ xuất từ hệ thống kế toán), bạn dùng tham số -Delimiter:
Import-CSV -Path “C:DataExport.csv” -Delimiter “;”
Ví dụ 3: Thay đổi header
Khi tệp CSV không có dòng tiêu đề,
PowerShell tự động chuyển đổi khoảng trắng thành khoảng trắng trong tên thuộc tính. Bạn vẫn truy cập được bằng cú pháp $object.”Ten Cot”. Nếu muốn tên không có khoảng trắng, dùng tham số -Header để đặt lại tên.
Tại sao Import-CSV không đọc được dòng đầu tiên?
Nếu tệp có BOM (Byte Order Mark) hoặc dòng trống trước header, Import-CSV có thể hiểu sai. Hãy thử dùng Get-Content -Encoding byte để kiểm tra và sửa.
Import-CSV có hỗ trợ tệp có nhiều dòng header không?
Không trực tiếp. Bạn phải bỏ qua các dòng đầu bằng cách lọc ra trước khi import hoặc dùng -Header để ghi đè.
Làm thế nào để import CSV và giữ nguyên kiểu dữ liệu số?
Dùng sau đó ép kiểu trong pipeline: Import-CSV “file.csv” | Select-Object , @{Name=’TuoiSo’; Expression={[int]$_.Tuoi}}
Có thể import nhiều tệp CSV cùng lúc và gộp lại không?
Có, dùng Get-ChildItem “.csv” | Import-CSV. Tuy nhiên nếu các tệp có cấu trúc cột khác nhau, kết quả có các thuộc tính khác nhau.
Kết luận

Lệnh Import-CSV PowerShell là công cụ mạnh mẽ và linh hoạt cho mọi tác vụ nhập dữ liệu dạng bảng. Với khả năng chuyển đổi tệp CSV thành đối tượng, nó mở ra vô số khả năng xử lý tự động trong quản trị hệ thống, phát triển phần mềm và phân tích dữ liệu. Hiểu rõ cú pháp, tham số và các lưu ý thực tế giúp bạn tận dụng tối đa cmdlet này, tránh được những lỗi phổ biến và nâng cao hiệu suất công việc. Thực hành với các ví dụ cụ thể là cách tốt nhất để làm chủ lệnh Import-CSV và tích hợp nó vào script hàng ngày của bạn.







