C#对Excel表csv文件的读写操作

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

七、测试验证

在这里插入代码片

相关推荐
biter down6 小时前
14:pytest-order 插件 顺序控制案例
开发语言·python·pytest
郝学胜-神的一滴6 小时前
Qt 高级开发 009: C++ Lambda 表达式
开发语言·c++·qt·软件构建
星栈独行6 小时前
我在 Rust 全栈项目里用 JWT 做无状态认证
开发语言·后端·rust·前端框架·开源·github·web
石山代码7 小时前
C++ 轻量级日志系统
开发语言·c++
Inhand陈工7 小时前
游轮WiFi覆盖方案复盘:6台5G CPE + AP实现全船高速上网
人工智能·物联网·网络协议·网络安全·信息与通信·iot
程序猿追7 小时前
在 HarmonyOS 模拟器上种出斐波那契螺旋线
大数据·人工智能·microsoft·华为·harmonyos
网络与设备以及操作系统学习使用者7 小时前
Linux与Windows核心差异深度解析
linux·运维·网络·windows·学习
小技与小术7 小时前
玩转Flask
开发语言·python·flask
SilentSamsara7 小时前
Python 性能优化:tracemalloc、profiling 与 C 扩展加速
开发语言·python·青少年编程·性能优化
冰小忆7 小时前
大驼峰命名规范和小驼峰命名规范的区别是什么?
开发语言·python