'C# listView 텍스트파일로 저장'에 해당되는 글 1건

728x90

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();
    }
}


위 코드 파일 소스

Text_Export.cs



'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
블로그 이미지

Link2Me

,