WPF
WPF 언어를 사용하여 CSV 데이터 생성하기
지오준
2023. 11. 27. 10:00
반응형
CSV(Comma-Separated Values) 파일은 데이터를 저장하고 전송하기 위해 널리 사용되는 형식입니다. WPF를 활용하여 CSV 파일을 생성하는 방법을 알아보겠습니다.
CSV 파일이란?
CSV 파일은 각 데이터가 쉼표(,)로 구분된 형식을 가지고 있는 파일로, 스프레드시트 프로그램에서 열 수 있으며, 텍스트 편집기로도 읽을 수 있습니다.
사용할 도구
- Visual Studio
- C# 언어
- WPF(Windows Presentation Foundation)
예제 코드
먼저, 간단한 WPF 애플리케이션을 만들고 버튼 클릭 시 CSV 파일을 생성하는 코드를 작성해보겠습니다.
XAML (MainWindow.xaml)
<Window x:Class="CSVGenerator.MainWindow"
xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation"
xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml"
Title="CSV Generator" Height="250" Width="350">
<Grid>
<StackPanel HorizontalAlignment="Center" VerticalAlignment="Center">
<Button x:Name="generateCSVButton" Content="CSV 파일 생성" Width="120" Height="40" Click="generateCSVButton_Click"/>
</StackPanel>
</Grid>
</Window>
C# (MainWindow.xaml.cs)
using System;
using System.IO;
using System.Text;
using System.Windows;
namespace CSVGenerator
{
public partial class MainWindow : Window
{
public MainWindow()
{
InitializeComponent();
}
private void generateCSVButton_Click(object sender, RoutedEventArgs e)
{
string[] data = { "이름,나이,이메일", "John,25,john@example.com", "Jane,30,jane@example.com", "Doe,20,doe@example.com" };
string filePath = "output.csv";
try
{
using (StreamWriter writer = new StreamWriter(filePath, false, Encoding.UTF8))
{
foreach (string line in data)
{
writer.WriteLine(line);
}
}
MessageBox.Show("CSV 파일이 생성되었습니다.", "완료", MessageBoxButton.OK, MessageBoxImage.Information);
}
catch (Exception ex)
{
MessageBox.Show($"오류: {ex.Message}", "오류", MessageBoxButton.OK, MessageBoxImage.Error);
}
}
}
}
위 코드는 WPF의 간단한 창을 생성하고, 버튼 클릭 시 미리 정의된 데이터를 이용하여 CSV 파일을 생성하는 기능을 가지고 있습니다. 'generateCSVButton_Click' 메서드에서는 파일 경로를 정의하고 StreamWriter를 사용하여 CSV 파일을 작성합니다.
실행 방법
- Visual Studio에서 새 WPF 프로젝트를 생성합니다.
- MainWindow.xaml과 MainWindow.xaml.cs 파일에 위 코드를 각각 복사하여 붙여넣습니다.
- 프로젝트를 빌드하고 실행합니다.
- 버튼을 클릭하여 CSV 파일을 생성해보세요.
이제 위 예제를 따라하면 간단한 WPF 애플리케이션을 통해 CSV 파일을 생성하는 방법을 익힐 수 있습니다. 데이터와 파일 경로를 자유롭게 변경하여 여러 가지 경우에 대응할 수 있습니다.
반응형