.NET(C#)中将DataTable内容写入到CSV文件 与 将CSV文件内容读取到DataTable中(原创)
2010-02-23 16:27
821 查看
一、将DataTable内容写入到CSV文件
/// <summary>
/// 将DataTable中的数据保存成CSV文件
/// </summary>
private void btnSaveCSV_Click(object sender, EventArgs e)
{
saveFileDialog1.Filter = "CSV文件|*.CSV";
saveFileDialog1.InitialDirectory = "C:\\";
if (saveFileDialog1.ShowDialog() == DialogResult.Cancel)
{
return;
}
else
{
string fileName = saveFileDialog1.FileName;
SaveCSV(ds.Tables[0], fileName);
}
}
/// <summary>
/// 将DataTable中数据写入到CSV文件中
/// </summary>
/// <param name="dt">提供保存数据的DataTable</param>
/// <param name="fileName">CSV的文件路径</param>
public void SaveCSV(DataTable dt, string fileName)
{
FileStream fs = new FileStream(fileName, System.IO.FileMode.Create, System.IO.FileAccess.Write);
StreamWriter sw = new StreamWriter(fs, System.Text.Encoding.Default);
string data = "";
//写出列名称
for (int i = 0; i < dt.Columns.Count; i++)
{
data += dt.Columns[i].ColumnName.ToString();
if (i < dt.Columns.Count - 1)
{
data += ",";
}
}
sw.WriteLine(data);
//写出各行数据
for (int i = 0; i < dt.Rows.Count; i++)
{
data = "";
for (int j = 0; j < dt.Columns.Count; j++)
{
data += dt.Rows[i][j].ToString();
if (j < dt.Columns.Count - 1)
{
data += ",";
}
}
sw.WriteLine(data);
}
sw.Close();
fs.Close();
MessageBox.Show("CSV文件保存成功!");
}
二、将CSV文件内容读取到DataTable中
/// <summary>
/// 打开CSV并显示其数据
/// </summary>
private void btnOpenCSV_Click(object sender, EventArgs e)
{
openFileDialog1.Filter = "CSV文件|*.CSV";
if (openFileDialog1.ShowDialog() == DialogResult.Cancel)
{
return;
}
else
{
this.dgvShow.DataSource = null;
string fileName = openFileDialog1.FileName;
this.dgvShow.DataSource = OpenCSV(fileName);
MessageBox.Show("成功显示CSV数据!");
}
}
/// <summary>
/// 将CSV文件的数据读取到DataTable中
/// </summary>
/// <param name="fileName">CSV文件路径</param>
/// <returns>返回读取了CSV数据的DataTable</returns>
public DataTable OpenCSV(string fileName)
{
DataTable dt = new DataTable();
FileStream fs = new FileStream(fileName, System.IO.FileMode.Open, System.IO.FileAccess.Read);
StreamReader sr = new StreamReader(fs, System.Text.Encoding.Default);
//记录每次读取的一行记录
string strLine = "";
//记录每行记录中的各字段内容
string[] aryLine;
//标示列数
int columnCount = 0;
//标示是否是读取的第一行
bool IsFirst = true;
//逐行读取CSV中的数据
while ((strLine = sr.ReadLine()) != null)
{
aryLine=strLine.Split(',');
if (IsFirst == true)
{
IsFirst = false;
columnCount = aryLine.Length;
//创建列
for (int i = 0; i < columnCount; i++)
{
DataColumn dc = new DataColumn(aryLine[i]);
dt.Columns.Add(dc);
}
}
else
{
DataRow dr = dt.NewRow();
for (int j = 0; j < columnCount; j++)
{
dr[j] = aryLine[j];
}
dt.Rows.Add(dr);
}
}
sr.Close();
fs.Close();
return dt;
}
/// <summary>
/// 将DataTable中的数据保存成CSV文件
/// </summary>
private void btnSaveCSV_Click(object sender, EventArgs e)
{
saveFileDialog1.Filter = "CSV文件|*.CSV";
saveFileDialog1.InitialDirectory = "C:\\";
if (saveFileDialog1.ShowDialog() == DialogResult.Cancel)
{
return;
}
else
{
string fileName = saveFileDialog1.FileName;
SaveCSV(ds.Tables[0], fileName);
}
}
/// <summary>
/// 将DataTable中数据写入到CSV文件中
/// </summary>
/// <param name="dt">提供保存数据的DataTable</param>
/// <param name="fileName">CSV的文件路径</param>
public void SaveCSV(DataTable dt, string fileName)
{
FileStream fs = new FileStream(fileName, System.IO.FileMode.Create, System.IO.FileAccess.Write);
StreamWriter sw = new StreamWriter(fs, System.Text.Encoding.Default);
string data = "";
//写出列名称
for (int i = 0; i < dt.Columns.Count; i++)
{
data += dt.Columns[i].ColumnName.ToString();
if (i < dt.Columns.Count - 1)
{
data += ",";
}
}
sw.WriteLine(data);
//写出各行数据
for (int i = 0; i < dt.Rows.Count; i++)
{
data = "";
for (int j = 0; j < dt.Columns.Count; j++)
{
data += dt.Rows[i][j].ToString();
if (j < dt.Columns.Count - 1)
{
data += ",";
}
}
sw.WriteLine(data);
}
sw.Close();
fs.Close();
MessageBox.Show("CSV文件保存成功!");
}
二、将CSV文件内容读取到DataTable中
/// <summary>
/// 打开CSV并显示其数据
/// </summary>
private void btnOpenCSV_Click(object sender, EventArgs e)
{
openFileDialog1.Filter = "CSV文件|*.CSV";
if (openFileDialog1.ShowDialog() == DialogResult.Cancel)
{
return;
}
else
{
this.dgvShow.DataSource = null;
string fileName = openFileDialog1.FileName;
this.dgvShow.DataSource = OpenCSV(fileName);
MessageBox.Show("成功显示CSV数据!");
}
}
/// <summary>
/// 将CSV文件的数据读取到DataTable中
/// </summary>
/// <param name="fileName">CSV文件路径</param>
/// <returns>返回读取了CSV数据的DataTable</returns>
public DataTable OpenCSV(string fileName)
{
DataTable dt = new DataTable();
FileStream fs = new FileStream(fileName, System.IO.FileMode.Open, System.IO.FileAccess.Read);
StreamReader sr = new StreamReader(fs, System.Text.Encoding.Default);
//记录每次读取的一行记录
string strLine = "";
//记录每行记录中的各字段内容
string[] aryLine;
//标示列数
int columnCount = 0;
//标示是否是读取的第一行
bool IsFirst = true;
//逐行读取CSV中的数据
while ((strLine = sr.ReadLine()) != null)
{
aryLine=strLine.Split(',');
if (IsFirst == true)
{
IsFirst = false;
columnCount = aryLine.Length;
//创建列
for (int i = 0; i < columnCount; i++)
{
DataColumn dc = new DataColumn(aryLine[i]);
dt.Columns.Add(dc);
}
}
else
{
DataRow dr = dt.NewRow();
for (int j = 0; j < columnCount; j++)
{
dr[j] = aryLine[j];
}
dt.Rows.Add(dr);
}
}
sr.Close();
fs.Close();
return dt;
}
相关文章推荐
- NET(C#)中将DataTable内容写入到CSV文件 与 将CSV文件内容读取到DataTable中(原创)
- NET(C#)中将DATATABLE内容写入到CSV文件 与 将CSV文件内容读取到DATATABLE中
- C#:将DataTable内容写入到CSV文件 与 将CSV文件内容读取到DataTab (转)
- C#读取csv文件内容到DataTable
- 读取csv文件内容到DataTable
- C#读取HTML文件内容写入记事本
- C#读取Excel写入数据库/将 Excel 文件转成 DataTable
- C#读取CSV文件到DataTable
- C#读取HTML文件内容写入记事本 (转自_逍遥2010_百度空间)
- C# - 数据备份-datatable数据写入到CSV文件中
- C#中将DataTable中数据导出到csv文件中
- java使用CsvReader和CsvWriter对csv文件内容进行读取和写入操作
- c#将DataTable内容导出为CSV文件
- C#:CsvReader读取.CSV文件(转换成DataTable)
- c#将DataTable中数据写入到CSV文件中
- 用c#打开.DBF文件 读取内容到DataTable或DataSet中
- C#读取HTML文件内容写入记事本
- C#中将DataTable中数据导出到csv文件中
- C#写入文件,与读取文件内容
- C# 从内嵌资源读取文件内容并写入到指定位置