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

DataGridView导入导出Txt文档

2013-06-30 11:33 281 查看
导入方法:

#region 方法--txt导入dgv
/// <summary>
/// 将Txt中数据读入DataTable中
/// </summary>
/// <param name="strFileName">文件名称</param>
/// <param name="isHead">是否包含表头</param>
/// <param name="strSplit">分隔符</param>
/// <param name="strErrorMessage">错误信息</param>
/// <returns>DataTable</returns>
public static DataTable TxtToDataTable(string strFileName, char strSplit, ref string strErrorMessage)
{
DataTable dtReturn = new DataTable();

try
{
string[] strFileTexts = File.ReadAllLines(strFileName,System.Text.Encoding.UTF8);

if (strFileTexts.Length == 0) // 如果没有数据
{
strErrorMessage = "文件中没有数据!";
return null;
}

string[] strLineTexts = strFileTexts[0].Split(strSplit);
if (strLineTexts.Length == 0)
{
strErrorMessage = "文件中数据格式不正确!";
return null;
}

for (int i = 0; i < strLineTexts.Length; i++)
{
dtReturn.Columns.Add("Columns" + i.ToString());
}

for (int i = 0; i < strFileTexts.Length; i++)
{
strLineTexts = strFileTexts[i].Split(strSplit);
DataRow dr = dtReturn.NewRow();
for (int j = 0; j < strLineTexts.Length; j++)
{
dr[j] = strLineTexts[j].ToString();
}
dtReturn.Rows.Add(dr);
}
}
catch (Exception ex)
{
strErrorMessage = "读入数据出错!" + ex.Message;

return null;
}

return dtReturn;
}
#endregion


导出方法:

#region 方法--dgv导出到txt
//导出到txt
//strFileName文件名,strSplit文件中数据间的分隔符
public static bool DataTableToTxt(DataGridView gridview, string strFileName, char strSplit)
{
if (gridview == null || gridview.Rows.Count == 0)
return false;

FileStream fileStream = new FileStream(strFileName, FileMode.OpenOrCreate);
StreamWriter streamWriter = new StreamWriter(fileStream, System.Text.Encoding.UTF8);

StringBuilder strBuilder = new StringBuilder();

try
{
for (int i = 0; i < gridview.Rows.Count; i++)
{
strBuilder = new StringBuilder();
for (int j = 0; j < gridview.Columns.Count; j++)
{
strBuilder.Append(gridview.Rows[i].Cells[j].Value.ToString() + strSplit);
}
strBuilder.Remove(strBuilder.Length - 1, 1); // 将最后添加的一个strSplit删除掉
streamWriter.WriteLine(strBuilder.ToString());
}
}
catch (Exception ex)
{
string strErrorMessage = ex.Message;
return false;
}
finally
{
streamWriter.Close();
fileStream.Close();
}

return true;
}
#endregion


运行效果:

 
窗口load:
private void TxtFromTo_Load(object sender, EventArgs e)
{
DataTable dtb1;
string err = "";
dtb1 = TxtToDataTable("Test.txt",',',ref err);
dataGridView1.DataSource = dtb1;
//dataGridView1.AutoResizeColumns(DataGridViewAutoSizeColumnsMode.AllCells);
dataGridView1.Columns[0].AutoSizeMode = DataGridViewAutoSizeColumnMode.Fill;
dataGridView1.Columns[1].AutoSizeMode = DataGridViewAutoSizeColumnMode.Fill;
dataGridView1.Columns[2].AutoSizeMode = DataGridViewAutoSizeColumnMode.Fill;
dataGridView1.Columns[3].AutoSizeMode = DataGridViewAutoSizeColumnMode.Fill;
dataGridView1.Columns[0].FillWeight = 25;
dataGridView1.Columns[1].FillWeight = 25;
dataGridView1.Columns[2].FillWeight = 25;
dataGridView1.Columns[3].FillWeight = 25;
DataTableToTxt(dataGridView1, "aa.txt", ',');
}
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息