Cách lưu dữ liệu vào file CSV trong ứng dụng C#

Lưu dữ liệu vào một file có thể là một kỹ thuật rất mạnh khi nói đến phân tích hoặc báo cáo dữ liệu. Nếu bạn đang tạo ứng dụng C#, bạn có thể tạo file CSV để lưu dữ liệu của mình vào.

File CSV là file văn bản mà bạn có thể lưu trữ các giá trị. Bạn có thể phân tách từng điểm dữ liệu bằng cách thêm dấu phẩy giữa các giá trị. Điều này cho phép bạn sắp xếp dữ liệu của mình theo hàng và cột. Sau đó, bạn có thể trực quan hóa các hàng và cột này khi bạn mở file trong Microsoft Excel.

Làm cách nào để bạn lưu trữ dữ liệu trong file CSV?

File CSV là file văn bản nơi bạn có thể phân tách các điểm và giá trị dữ liệu bằng dấu phẩy.

Khi lưu trữ dữ liệu trong file bằng chương trình, hãy thêm mỗi hàng dưới dạng một dòng riêng biệt. Để tạo cột, hãy định dạng dữ liệu bằng cách thêm dấu phẩy để phân tách từng giá trị hoặc điểm dữ liệu.

StringBuilder output = new StringBuilder();
output.AppendLine(string.Join(",", new String[] { "1", "2", "3" }));
// CSV File Output = 1,2,3

Cách tạo Console Application và Test Data

Tạo ứng dụng console C# bằng Visual Studio và thêm một số dữ liệu test vào chương trình.

1. Mở Visual Studio và nhấp vào Create a new project.

Tạo ứng dụng console mới
Tạo ứng dụng console mới

2. Nhấp vào Console Application rồi nhấn Next.

Chọn Console Application làm dự án mới
Chọn Console Application làm dự án mới

3. Đặt tên cho dự án và lưu trữ nó ở vị trí bạn chọn. Nhấp vào Next.

Đặt tên và chọn vị trí lưu
Đặt tên và chọn vị trí lưu

4. Để nguyên Target Framework mặc định và nhấp vào Create. Điều này khiến Visual Studio tạo ứng dụng console C# "Hello World" mặc định.

5. Ở đầu chương trình, nhập System.IOSystem.Text. Điều này sẽ cho phép bạn lưu trữ dữ liệu trong file CSV và cũng giúp định dạng chuỗi cho định dạng CSV.

using System.IO;
using System.Text;

6. Thêm một số dữ liệu test vào chương trình. Bên dưới class Main Program, tạo một class mới có tên là Student. Sử dụng class Student để lưu trữ thông tin về sinh viên, chẳng hạn như thẻ sinh viên, họ, tên và ngày sinh. Nếu chưa quen với cách hoạt động của các class, bạn có thể tìm hiểu thêm về Lớp (Class) trong C#.

public class Student
{
    public int StudentId;
    public string FirstName;
    public string LastName;
    public string Dob;
 
    public Student(int StudentId, string FirstName, string LastName, string Dob)
    {
        this.StudentId = StudentId;
        this.FirstName = FirstName;
        this.LastName = LastName;
        this.Dob = Dob;
    }
}

7. Bên trong hàm Main(), hãy xóa code "Hello World" hiện có. Thay thế nó bằng một mảng students mới:

static void Main(string[] args)
{
    // Create an array with a list of students
    Student[] students =
    {
        new Student(1, "John", "Smith", "03/04/1990"),
        new Student(2, "Adam", "Van Houten", "07/07/1991"),
        new Student(3, "Joey", "Richardson", "01/02/1992"),
        new Student(4, "Matt", "Adams", "05/05/1992"),
        new Student(5, "Jake", "Smith", "04/04/1994"),
    }; 
}

Cách tạo file CSV mới và thêm các heading

Sử dụng đường dẫn của file để tạo file CSV mới và thêm các heading vào file.

1. Bên trong hàm Main(), bên dưới danh sách sinh viên, hãy tạo một file CSV mới. Sử dụng đường dẫn file để xác định nơi bạn muốn lưu file. Nếu file không tồn tại, chương trình sẽ tự động tạo file CSV mới tại vị trí đó.

String file = @"C:\Users\Sharl\Desktop\Output.csv";

2. Sử dụng StringBuilder để tạo một chuỗi có định dạng mới. Sử dụng biến separator để lưu trữ dấu phẩy sẽ phân tách từng giá trị cho mỗi cột.

String separator = ",";
StringBuilder output = new StringBuilder();

3. Tạo các heading cho hàng trên cùng của file CSV. Thêm các heading cho StudentID của học sinh, họ, tên và ngày sinh.

String[] headings = { "StudentID", "First Name", "Last Name", "Date Of Birth" };
output.AppendLine(string.Join(separator, headings));

Cách lưu trữ giá trị trong file CSV

Đối với mỗi sinh viên trong mảng students, hãy tạo một hàng mới để lưu trữ thông tin chi tiết của họ bên trong file CSV.

1. Thêm một vòng lặp for cho mỗi sinh viên. Mỗi sinh viên sẽ hiển thị thông tin chi tiết của họ (bao gồm ID sinh viên, họ, tên và ngày sinh) trong mỗi hàng khác nhau của file CSV.

foreach (Student student in students)
{
}

2. Bên trong vòng lặp for, hãy tạo một danh sách các thuộc tính của sinh viên. Sử dụng StringBuilder để định dạng chuỗi và thêm dấu phẩy vào giữa mỗi giá trị.

String[] newLine = { student.StudentId.ToString(), student.FirstName, student.LastName, student.Dob };
output.AppendLine(string.Join(separator, newLine));

3. Ngoài ra, bạn có thể định dạng hàng bằng string.Format, thay vì StringBuilder.

string newLine = string.Format("{0}, {1}, {2}, {3}", student.StudentId.ToString(), student.FirstName, student.LastName, student.Dob);
output.AppendLine(string.Join(separator, newLine));

4. Sau vòng lặp for, hãy ghi tất cả dữ liệu vào file. Thêm block try-catch để phát hiện bất kỳ sự cố tiềm ẩn nào có thể xảy ra khi ghi dữ liệu vào file. Điều này sẽ đảm bảo chương trình không bị treo nếu chương trình không thể lưu file thành công.

try
{
    File.AppendAllText(file, output.ToString());
}
catch(Exception ex)
{
    Console.WriteLine("Data could not be written to the CSV file.");
    return;
}

5. Thông báo cho người dùng rằng chương trình đã có thể tạo file thành công.

Console.WriteLine("The data has been successfully saved to the CSV file");

Cách xem dữ liệu trong file

1. Chạy chương trình và điều hướng đến vị trí của file CSV đã tạo để mở nó.

Nhấp vào nút phát màu xanh lá cây ở đầu cửa sổ Visual Studio
Nhấp vào nút phát màu xanh lá cây ở đầu cửa sổ Visual Studio

2. Chờ ứng dụng console biên dịch và hiển thị thông báo thành công.

Thông báo thành công
Thông báo thành công

3. Điều hướng đến vị trí bạn đã lưu trữ file của mình và mở file Output.csv mới được tạo. Mở file bằng Microsoft Excel để xem dữ liệu dưới dạng hàng và cột.

Dữ liệu CSV được mở trong file Excel
Dữ liệu CSV được mở trong file Excel

4. Mở file CSV bằng bất kỳ trình soạn thảo văn bản nào, chẳng hạn như Notepad++, để xem dữ liệu đã định dạng được phân tách bằng dấu phẩy.

Kết quả CSV được mở trong Notepad
Kết quả CSV được mở trong Notepad

Bạn có thể lưu dữ liệu trong ứng dụng C# của mình bằng cách ghi dữ liệu đó vào file CSV. Tùy thuộc vào dữ liệu, bạn có thể thêm từng đối tượng hoặc tập dữ liệu dưới dạng một hàng riêng biệt. Sử dụng dấu phẩy để tách từng điểm dữ liệu hoặc giá trị thành các cột.

Bạn có thể xem dữ liệu CSV thô trong trình soạn thảo văn bản để xem các điểm dữ liệu được định dạng của mình. Bạn cũng có thể xem file CSV của mình để thấy các hàng và cột một cách trực quan bằng Microsoft Excel.

Thứ Tư, 19/10/2022 17:11
51 👨 1.805
0 Bình luận
Sắp xếp theo