根据当前时间生成年份、月份文件夹,在月份文件夹中生成以当天日期的EXCEL文件,通过扫码枪读取码值,并根据码值匹配相应的名称。

**设计内容:**根据当前时间生成年份、月份文件夹,在月份文件夹中生成以当天日期的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")

全部代码参照下面链接
全部代码