您的位置:首页 > 编程语言 > C#

(转) C# ListView控件的数据导入、导出到txt文件

2011-06-27 16:40 1286 查看
文章转自:http://hi.baidu.com/roadrunners/blog/item/fdf88f2233b8d246935807c7.html

家都知道操作文件吗!不非就是和数据流之类的东东打交道,所以要在我们的工程文件中加上引用“using System.IO;”,这个就是用来读写文件的。此实例运行效果如下:



接着编写代码:

using System;
using System.Collections.Generic;
using System.ComponentModel;
using System.Data;
using System.Drawing;
using System.Linq;
using System.Text;
using System.Windows.Forms;
using System.IO;
using System.Diagnostics;

namespace ReadWriteFile
{
public partial class Form1 : Form
{
//全局变量,文件全路径
private string stFilePath = string.Empty;

public Form1()
{
InitializeComponent();

ListViewItem lstItem = null;
string stState = string.Empty;

//行和列是否显示网格线
listView1.GridLines = true;
//单选时,选择整行
listView1.FullRowSelect = true;
//显示方式
listView1.View = View.Details;
//没有足够的空间显示时,是否添加滚动条
listView1.Scrollable = true;
//是否可以选择多行
listView1.MultiSelect = false;

listView1.Columns.Add("lstFileName", "文件名");
listView1.Columns.Add("lstNoteBook", "工作薄");
listView1.Columns.Add("lstArea", "区域");
listView1.Columns.Add("lstState", "导入状态");

for (int i = 0; i < 12; i++)
{
lstItem = new ListViewItem();
if (i % 2 == 0)
{
//lstItem.BackColor = Color.Green;
lstItem.ForeColor = Color.White;
stState = "成功";
}
else
{
//lstItem.BackColor = Color.Red;
lstItem.ForeColor = Color.Red;
stState = "失败";
}
lstItem.SubItems[0].Text = "《现代熟女故事》 ";
lstItem.SubItems.Add("最初的炙热过后,感情渐渐变地像鸡肋。");
lstItem.SubItems.Add("是守着属于自己的鸡肋还是冒险开始一段新感情?");
lstItem.SubItems.Add(stState);

listView1.Items.Add(lstItem);
}

//自动适应宽度,-1根据内容设置宽度,-2根据标题设置宽度.
listView1.Columns["lstFileName"].Width = -1;
listView1.Columns["lstNoteBook"].Width = -1;
listView1.Columns["lstArea"].Width = -1;
listView1.Columns["lstState"].Width = -1;
listView1.Columns["lstFileName"].Width = -2;
listView1.Columns["lstNoteBook"].Width = -2;
listView1.Columns["lstArea"].Width = -2;
listView1.Columns["lstState"].Width = -2;
}

/// <summary>
/// 导出数据到txt文件.<br></br>
/// 2009-04-24 YJ 定义函数.<br></br>
/// </summary>
/// <param name="sender"></param>
/// <param name="e"></param>
private void button1_Click(object sender, EventArgs e)
{
//此处的文本文件在工程下Bin的程序集目录下
stFilePath = Application.StartupPath.Trim() + "//students" + DateTime.Now.ToString("yyyy年MM月dd日hh时mm分ss秒") + ".txt";
StreamWriter swStream;
if (File.Exists(stFilePath))
{
swStream = new StreamWriter(stFilePath);
}
else
{
swStream = File.CreateText(stFilePath);
}

for (int i = 0; i < listView1.Items.Count; i++)
{
for(int j=0;j<listView1.Items[i].SubItems.Count;j++)
{
string _strTemp = listView1.Items[i].SubItems[j].Text;
swStream.Write(_strTemp);
//插入"<----->"作为分隔符,可以任取
swStream.Write("<----->");
}
swStream.WriteLine();
}

//关闭流,释放资源
swStream.Flush();
swStream.Close();
//导入Txt文件后,自动打开文件
Process.Start("notepad.exe", stFilePath);
}

/// <summary>
/// 导入数据到ListView控件中.<br></br>
/// 2009-04-24 YJ 定义函数.<br></br>
/// </summary>
/// <param name="sender"></param>
/// <param name="e"></param>
private void button2_Click(object sender, EventArgs e)
{
StreamReader srStream = null;
if (File.Exists(stFilePath))
{
srStream = new StreamReader(stFilePath, System.Text.Encoding.UTF8);
listView1.Items.Clear();
//遍历txt文件里的所有行,并以ListView显示
while (!srStream.EndOfStream)
{
string _stLineValue = srStream.ReadLine();
ListViewItem _item = new ListViewItem();
_item.SubItems[0].Text = _stLineValue.Substring(0, _stLineValue.IndexOf("<----->"));
_stLineValue = _stLineValue.Substring(_stLineValue.IndexOf("<----->"));
_stLineValue = _stLineValue.Substring(7, (_stLineValue.Length - 7));
_item.SubItems.Add(_stLineValue.Substring(0, _stLineValue.IndexOf("<----->")));
_stLineValue = _stLineValue.Substring(_stLineValue.IndexOf("<----->"));
_stLineValue = _stLineValue.Substring(7, (_stLineValue.Length - 7));
_item.SubItems.Add(_stLineValue.Substring(0, _stLineValue.IndexOf("<----->")));
_stLineValue = _stLineValue.Substring(_stLineValue.IndexOf("<----->"));
_stLineValue = _stLineValue.Substring(7, (_stLineValue.Length - 7));
_item.SubItems.Add(_stLineValue.Substring(0, _stLineValue.IndexOf("<----->")));

if (_item.SubItems[3].Text.Equals("失败"))
{
_item.BackColor = Color.Red;
}
else
{
_item.BackColor = Color.Green;
}

listView1.Items.Add(_item);
}
}
else
{
MessageBox.Show("导出失败,找不到读取的文件");
}
}
}
}
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: