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

七、测试验证

在这里插入代码片

相关推荐
_WndProc15 分钟前
【Python】Flask网页
开发语言·python·flask
linweidong17 分钟前
物联网MQTT协议与实践:从零到精通的硬核指南
物联网·mqtt·websocket·嵌入式·iot·tdengine·工业物联网
编程乐趣30 分钟前
自学C#,要懂得用好对象浏览器
windows·.net
liujing1023292931 分钟前
Day04_刷题niuke20250703
java·开发语言·算法
能工智人小辰1 小时前
二刷 苍穹外卖day10(含bug修改)
java·开发语言
DKPT1 小时前
Java设计模式之结构型模式(外观模式)介绍与说明
java·开发语言·笔记·学习·设计模式
qq_393828221 小时前
办公文档批量打印器 Word、PPT、Excel、PDF、图片和文本,它都支持批量打印。
windows·word·powerpoint·excel·软件需求
LL.。1 小时前
同步回调和异步回调
开发语言·前端·javascript
Leinwin1 小时前
微软发布突破性医疗AI系统
人工智能·microsoft
好名字更能让你们记住我1 小时前
Linux多线程(十二)之【生产者消费者模型】
linux·运维·服务器·jvm·windows·centos