listView 내용을 텍스트로 저장하는 방법을 작성해봤다.
간단하게 작성하는 방법도 있지만, 원하는 열만 출력하고 싶은 경우가 있어서 이 부분을 고려해서 작성했다.
현재 읽어들인 파일명까지 인식하여 저장하는 것은 아직 구현을 못했다.
private void saveDataToolStripMenuItem_Click(object sender, EventArgs e)
{
SaveFile();
}
private void SaveFile()
{
SaveFileDialog sfd1 = new SaveFileDialog();
sfd1.Title = "텍스트 파일 저장";
sfd1.FileName = string.Empty;
sfd1.Filter = "텍스트파일 (*.txt)|*.txt";
if (sfd1.ShowDialog(this) == DialogResult.OK)
{
try
{
SaveData_listView(sfd1.FileName, listView1);
}
catch
{
MessageBox.Show("Excel 파일 저장중 에러가 발생했습니다.");
return;
}
MessageBox.Show(Path.GetFileName(sfd1.FileName) + " 파일을 저장했습니다.");
}
}
private void SaveData_listView(string fileName, ListView LV)
{
// Text 파일로 데이터 저장
string delimeter = Environment.NewLine; // 줄바꿈(개행문자)
using (TextWriter textExport = new StreamWriter(fileName))
{
if (LV.Items.Count == 0)
{
MessageBox.Show("저장할 내용이 없습니다");
return;
}
foreach (ListViewItem item in LV.Items)
{
for (int i = 0; i < item.SubItems.Count - 1; i++) // SubItems (열)을 전부 순환하는데 마지막은 제외
{
if (i != 1) // 출력하고 싶지 않은 열 지정
{
textExport.Write(item.SubItems[i].Text);
textExport.Write(";");
//textExport.Write(delimeter); // 줄바꿈으로 처리하고 싶을 때
}
}
textExport.Write(delimeter);
}
textExport.Flush(); // flush from the buffers
textExport.Close();
}
}
위 코드 파일 소스
'C# > listView' 카테고리의 다른 글
C# listView Checkbox 추가하는 방법 (2) | 2015.10.04 |
---|---|
C# listView Line Merge(행 병합) (0) | 2015.10.03 |
C# listView 행높이 지정 방법 (0) | 2015.09.27 |
C# listView ContextMenu 에서 행 삭제 (0) | 2015.09.26 |
C# ListView 기능 분석 (0) | 2015.09.14 |