STDIO
Tìm kiếm gần đây
    • Nội dung
    • QR Code
    • 0
    • 0
    • Sao chép

    Cấu Trúc File CSV và Cách Đọc - Ghi File CSV

    File .csv là gì, cấu trúc file CSV - cách tạo, đọc ghi file csv với các trình soạn thảo. Sử dụng C# để đọc ghi file CSV.
    02/06/2015
    30/07/2020
    4 phút đọc
    Cấu Trúc File CSV và Cách Đọc - Ghi File CSV

    Giới thiệu

    CSV là định dạng file đơn giản được dùng để lưu trữ dữ liệu dạng bảng: bảng tính hoặc cơ sở dữ liệu. File nằm ở dạng CSV có thể được tạo hoặc hiển thị từ những phần mềm quản lý dữ liệu bảng như Microsoft Excel hoặc OpenOffice Calc.

    CSV là viết tắt của cụm từ “comma-seperated values” (những giá trị được ngăn cách bởi dấu phẩy). Các trường dữ liệu thường được ngăn cách nhau bởi dấu phẩy.

    Ví dụ bạn có bảng dữ liệu sau:

    Tên Tuổi Khoa Điểm thi
    Nguyễn Minh Thành 20 Khoa học máy tính 9
    Nguyễn Đức Phú 19 An ninh mạng 8

    Bảng dữ liệu trên khi được xuất sang file định dạng CSV sẽ có dạng sau:

    Nguyễn Minh Thành,20,Khoa học máy tính,9
    Nguyễn Đức Phú,19,Hệ thống thông tin,8

    Có thể thấy rằng mỗi trường dữ liệu sẽ được ngăn cách bởi dấu phẩy mà mỗi đối tượng dữ liệu sẽ được ngăn cách bằng xuống hàng (các dòng).

    File CSV là một file dữ liệu thuần, có nghĩa là nó có thể được tạo và chỉnh sửa bằng một trình văn bản (Notepad, Nodepad++, Visual Studio Code, Vim...). Tuy nhiên, CSV thường được tạo từ một bảng tính hoặc một cơ sở dữ liệu.

    Cách tạo file CSV bằng editor cơ bản

    Với Nodepad, để tạo file CSV với một trình chỉnh sửa văn bản, đầu tiên hãy mở trình chỉnh sửa văn bản để tạo tệp mới. Sau đó nhập dữ liệu vào trình chỉnh sửa văn bản với định dạng ngăn cách nhau bằng dấu phẩy và kết thúc hàng bằng cách xuống hàng.

    Title1,Title2,Title3
    one,two,three
    vidu1,vidu2,vidu3

    Sau đó lưu file với đuôi .csv. Sau đó bạn có thể mở file bằng Excel hoặc những trình bảng tính. Phần mềm sẽ tự động thể hiện bảng dữ liệu như sau:

    Title1 Title2 Title3
    one two three
    vidu1 vidu2 vidu3

    Trong file CSV được tạo ra, từng trường dữ liệu được ngăn cách bằng dấu phẩy, nhưng câu hỏi đặt ra là nếu bạn muốn giữ lại dấu phẩy đó thì nên làm như thế nào?

    Nếu một trường dữ liệu trong file CSV có chứa dấu phẩy, bạn có thể đặt toàn bộ phần dữ liệu trong dấu ngoặc kép để giữ chúng lại. Lúc này, dấu phẩy trong dấu ngoặc kép sẽ được xem là dữ liệu chứ không còn đóng vai trò vách ngăn nữa.

    Ví dụ với bảng sau:

    Sinh viên Điểm thi
    Nguyễn Minh Thành 9,8
    Nguyễn Đức Phú 7,5
    Nguyễn Huỳnh Thảo Nhi 8

    Thì file CSV sẽ có nội dung như sau:

    Sinh viên,Điểm thi
    Nguyễn Minh Thành,"8,7"
    Nguyễn Đức Phú,"7,5"
    Nguyền Huỳnh Thảo Nhi,8

    Tương tự với dấu xuống dòng và dấu ngoặc kép, nếu bạn muốn giữ chúng lại, hãy đặt chúng trong hai dấu ngoặc kép và chúng sẽ được giữ lại trong 1 field.

    Họ tên Bình luận
    Phuc Tran "Dòng 1.
    Dòng 2."
    Họ tên,Bình luận
    Phuc Tran,"Dòng 1.
    Dòng 2."

    Cấu trúc file CSV

    1. Mỗi đối tượng dữ liệu nằm trên một hàng riêng biệt, cách biệt nhau bằng dấu xuống dòng.

    data_11,data_12,data_13<xuống dòng>
    data_21,data_22,data_23

    2. Đối tượng cuối cùng của dữ liệu không cần có dấu xuống dòng.

    data_11,data_12,data_13<xuống dòng>
    data_21,data_22,data_23<không cần xuống dòng>

    3. Không cần thiết phải có một dòng đầu để chứa tên trường của dữ liệu, tuy nhiên về mặt tiện ích sử dụng, dòng này giúp bạn định nghĩa được tên trường (tên cột).

    Tên sản phẩm,Giá,Số lượng
    iPhone,15000000,1
    Android,3000000,2

    4. Số lượng trường phải bằng nhau ở mỗi hàng.

    5. Bất kỳ dấu nào - khoảng trắng, khoảng cách cũng được xem như một phần của trường dữ liệu.

    6. Kết thúc một đối tượng không nên có dấu phẩy cuối cùng.

    7. Dấu ngoặc kép phải nằm ở đầu và cuối trường dữ liệu, không nên nằm trong trường dữ liệu.

    8. Những trường dữ liệu bao gồm dấu phẩy, dấu xuống dòng phải nằm trong dấu ngoặc kép.

    9. Nếu có dấu ngoặc kép trong trường dữ liệu thì phải có dấu ngoặc kép đầu và cuối trường dữ liệu. Dấu ngoặc kép trong trường dữ liệu phải đi theo cặp.

    "Du lieu co 2 dau ""ngoac kep"" de biet la dau ngoac kep"

    Sử dụng phần mềm như Microsoft Exel, OpenOffice Calc hay Google Sheets bạn có thể tạo ra file CSV này dễ dàng, khi lưu lại bạn lựa chọn lưu trữ dưới dạng CSV. Lưu ý rằng CSV là dữ liệu dạng đơn giản nên không được có quá nhiều format đặc biệt.

    Đọc ghi file CSV với C#

    Cài đặt FileHelpers: Install-Package FileHelpers

    Product.cs

    using System;
    using FileHelpers;
    
    namespace StdioTraining
    {
        [DelimitedRecord(",")]
        [IgnoreEmptyLines()]
        [IgnoreFirst()]
        class Product
        {
            private string name;
            private string price;
    
            [FieldQuoted('"', QuoteMode.OptionalForBoth)]
            public string Name { get => name; set => name = value; }
            [FieldQuoted('"', QuoteMode.OptionalForBoth)]
            public string Price { get => price; set => price = value; }
    
            public void Show()
            {
                Console.WriteLine("Name: " + this.name + " ### Price: " + this.price);
            }
        }
    }

    Đọc file CSV

    string filePath = "D:/products.csv";
    
    var engine = new FileHelperEngine(typeof(Product));
    var products = (Product[])engine.ReadFile(filePath);
    
    for (int i = 0; i < products.Length; i++)
    {
        products[i].Show();
    }

    Ghi file CSV

    FileHelperEngine engine = new FileHelperEngine(typeof(Product));
    
    List products = new List();
    
    Product temp = new Product("iPhone 5", 3500000);
    products.Add(temp);
            
    string filename = "D:/products.csv";
    engine.HeaderText = "Name,Price";
    
    engine.WriteFile(filePath, products);

    Hoặc tải code tại đây.

    0 Bình luận
    C# for Automation

    C# for Automation

    STDIO Training - Đào tạo C# Foundation & Advanced.

    Đề xuất

    Đọc Ghi File Cơ Bản Trong C#
    Hướng dẫn đọc và ghi file cơ bản sử dụng đối tượng File trong C#. Nhờ có ...
    Đọc và Ghi File trong Python
    Đọc và ghi file text với Python thông qua code ví dụ với các mode cơ bản ...
    28/03/2015

    Khám phá

    Bitmap - Khái Niệm Và Các Xử Lý Cơ Bản
    Kiến trúc file bmp và đọc ghi file bmp bằng C/C++.
    Căn Bản về Đọc và Ghi File trong Ngôn Ngữ C++
    Căn bản về thao tác đọc/ghi file trong C++.
    22/07/2015
    Định Dạng Ảnh Bitmap - Giới Thiệu và Các Thao Tác Cơ Bản
    Trong đời thường, bạn sẽ gặp các file ảnh có định dạng .PNG, .JPG, .TGA, ...
    Đọc Ghi File Cơ Bản với fstream
    Sử dụng fstream để đọc file, ghi file, xử lý file đơn giản trong C++.
    04/08/2014
    Cài Đặt Và Cấu Hình Microsoft SQL Server 2014 Express
    Cài đặt và cấu hình Microsoft SQL Server 2014 Express, tạo môi trường ...
    Xử Lý Với File PLIST trong Cocos2d-x 3.x.x
    Giới thiệu những đặc điểm, cách xử lý và ứng dụng của file PLIST trong ...
    Xử Lý Với File JSON Trong Cocos2d-x 3.x.x
    Tìm hiểu những đặc điểm, cách xử lý và ứng dụng của file JSON trong ...
    Đọc Ghi Tất Cả Các Định Dạng Ảnh với FreeImage trong C++
    Hướng dẫn sử dụng FreeImage để đọc, ghi, xử lý ảnh trong C++.
    28/09/2014
    Khi bạn nhấn vào liên kết sản phẩm do STDIO đề xuất và mua hàng, STDIO có thể nhận được hoa hồng. Điều này hỗ trợ STDIO tạo thêm nhiều nội dung hữu ích. Tìm hiểu thêm.
    STDIO
    Trang chính
    Công ty TNHH STDIO

    30, Trịnh Đình Thảo, Hòa Thạnh, Tân Phú, Hồ Chí Minh
    +84 28.36205514 - +84 942.111912
    developer@stdio.vn

    383/1 Quang Trung, Phường 10, Quận Gò Vấp, Hồ Chí Minh
    Số giấy phép ĐKKD: 0311563559 do sở Kế hoạch và Đầu Tư TPHCM cấp ngày 23/02/2012

    ©STDIO, 2013 - 2020