**设计内容:**根据当前时间生成年份、月份文件夹,在月份文件夹中生成以当天日期的EXCEL文件,通过扫码枪读取码值,并根据码值匹配相应的名称。
一、生成年、月份文件
#region 创建文件夹
string year = DateTime.Now.Year.ToString() + "年";
string month = DateTime.Now.Month.ToString() + "月";
/*string day = DateTime.Now.Day.ToString() + "日";*/
string file_path = "E:\\" + year + "\\" + month + "\\";
if (!Directory.Exists(file_path)) //如果“日期”的文件不存在
{
Directory.CreateDirectory(file_path); //创建一个“日期”的文件夹
}
#endregion
通过这段代码运行之后,你会发现在你的E盘下有一个2021年的文件夹,打开之后你会发现有一个月份文件夹
二、创建CSV文件,可用EXCEL打开
继续在初始化下写这段代码即可
#region 创建CSV文件
// 在上面的"8日"文件夹下创建一个以当前时间为名的CSV文件
string time = DateTime.Now.ToString("yyyy-MM-dd");
string file_path1 = "E:\\" + year + "\\" + month + "\\" + time + ".csv";
FileInfo fi = new FileInfo(@"E:\\" + year + "\\" + month + "\\" + time + ".csv");
StreamWriter sw = new StreamWriter(file_path1, true, UnicodeEncoding.GetEncoding("GB2312"));//"GB2312"代表的是简体字
string time1 = DateTime.Now.ToString("HH:mm:ss");
#endregion
三、接下来就是创建标头
首先判断CSV文件内是否有内容,如果没有内容写入内容,如果有则在下一行写入数据。如下方代码:
//加入一个逗号,表示定位到下一个单元格,加入一个回车符表示定位到一下行
sw.Write("序号" + "," + "时间" + "," + "码值" + "," + "名称" + "\r");
四、在界面创建两个Textbox控件和一个清除按键
左侧代表扫码枪读入的数据,右侧显示码值代表的名称
扫码枪的程序代码如下:
(具体扫码枪如何使用,参考一下这个链接(https://blog.csdn.net/HEIMENGER/article/details/119205499))
if (e.KeyCode == Keys.Enter)
{
//获取条码资料
string barcode = textBox1.Text.Trim();
string year = DateTime.Now.Year.ToString() + "年";
string month = DateTime.Now.Month.ToString() + "月";
string time = DateTime.Now.ToString("yyyy-MM-dd");
string file_path1 = "E:\\" + year + "\\" + month + "\\" + time + ".csv";
FileInfo fi = new FileInfo(@"E:\\" + year + "\\" + month + "\\" + time + ".csv");
StreamWriter sw = new StreamWriter(file_path1, true, UnicodeEncoding.GetEncoding("GB2312"));//"GB2312"代表的是简体字
string time1 = DateTime.Now.ToString("HH:mm:ss");
#region 判断条码值,并对应名称写入CSV文件
if (barcode == "9787302447092")
{
i = 2;
textBox2.Text = "vb.net实训设计";
}
else if (barcode == "9787115519184")
{
i = 0;
textBox2.Text = "C#图解教程";
}
else if (barcode == "9787115193582")
{
i = 1;
textBox2.Text = "C#图像处理算法";
}
else if (barcode == "B-83284CM/07")
{
i = 3;
textBox2.Text = "Robot操作说明书";
}
#endregion
注意的是需要检测内部是否有内容:不要重复写入标题
写入数据代码如下:
string[] mingcheng = new string[] { "C#图解教程", "C#图像处理算法", "vb.net实训设计","Robot操作说明书" };
sw.Write(num + "," + time1 + "," + barcode + "," + mingcheng[i] + "\r")
全部代码参照下面链接
全部代码