C#对Excel表csv文件的读写
一、变量定义
csharp
#region 变量定义
private string CurAppExeDir = System.AppDomain.CurrentDomain.BaseDirectory;
private string TestFileName = "xDemoTest.csv";
#endregion
二、加载主窗口
csharp
#region 加载主窗口
private void xDemoMainForm_Load(object sender, EventArgs e)
{
Create_Table_Header();
Read_Data_Table(CurAppExeDir + TestFileName);
}
#endregion
三、创建表头
csharp
#region 创建表头
private void Create_Table_Header()
{
/* 文件路径 + 名称 */
string dir = CurAppExeDir + TestFileName;
/* 文件已存在 */
if (File.Exists(dir) == true) return;
/* 创建文件流 */
using(FileStream fileStream = new FileStream(dir, FileMode.Create, FileAccess.Write))
{
/* 创建写文件流 */
StreamWriter streamWriter = new StreamWriter(fileStream);
/* 写入表头 */
const string header = "序号,姓名,学号,性别,专业";
streamWriter.WriteLine(header);
/* 关闭写文件流 */
streamWriter.Close();
}
}
#endregion
四、向表中添加数据
csharp
#region 向表中添加数据
private void Append_Data_Table(string dir, string text)
{
/* 文件不存在 */
if (File.Exists(dir) == false) return;
/* 创建文件流 */
using (FileStream fileStream = new FileStream(dir, FileMode.Append, FileAccess.Write))
{
/* 创建写文件流 */
StreamWriter streamWriter = new StreamWriter(fileStream);
/* 写入表头 */
streamWriter.WriteLine(text);
/* 关闭写文件流 */
streamWriter.Close();
}
}
#endregion
五、从表中读取数据
csharp
#region 从表中读取数据
private List<string> Read_Data_Table(string dir)
{
List<string> readData = new List<string>();
/* 文件不存在 */
if (File.Exists(dir) == false) return readData;
/* 创建文件流 */
using (FileStream fileStream = new FileStream(dir, FileMode.Open, FileAccess.Read))
{
/* 创建读文件流 */
StreamReader streamReader = new StreamReader(fileStream);
/* 是否到达文件末尾 */
while (streamReader.EndOfStream == false)
{
/* 读数据 */
string text = streamReader.ReadLine();
Console.WriteLine(text);
readData.Add(text);
}
/* 关闭读文件流 */
streamReader.Close();
}
return readData;
}
#endregion
六、单击按钮向表中添加数据
csharp
#region 单击按钮
static UInt16 count = 1;
private void ButtonTest1_Click(object sender, EventArgs e)
{
//序号,姓名,学号,性别,专业;
string dir = CurAppExeDir + TestFileName;
string ts = (DateTime.Now.ToUniversalTime() - new DateTime(1970, 1, 1)).TotalMilliseconds.ToString().Substring(5,8);
string text = count.ToString() + ",凌晨," + ts + ",女," + "核弹维修保养" + count.ToString();
Append_Data_Table(dir, text);
count += 1;
}
#endregion
七、测试验证
在这里插入代码片