用C#生成n条不重复的n位验证码

来源:互联网 发布:腾讯视频mac存储路径 编辑:程序博客网 时间:2024/05/16 14:42

例:生成10条不重复的8位验证码


需要添加的引用

using Microsoft.Office.Interop;
using Microsoft.Office.Interop.Excel;
注意:直接引用要报错需要在>添加引用>COM下面添加Microsoft Excel 12.0 Object Library引用

代码块

//生成10条不重复的8位验证码            var App = new Microsoft.Office.Interop.Excel.Application();            Object oMissing = System.Reflection.Missing.Value;            Workbook workBook = App.Workbooks.Add(oMissing);            Worksheet sheet = (Worksheet)workBook.Sheets[1];            sheet.Cells[1, 1] = "Number";//默认添加第一行的列头            char[] constant = { '0', '1', '2', '3', '4', '5', '6', '7', '8', '9', 'A', 'B', 'C', 'D', 'E', 'F', 'G',                                   'H', 'I', 'J', 'K', 'L', 'M', 'N','O','P', 'Q', 'R', 'S', 'T', 'U', 'V', 'W', 'X', 'Y', 'Z' };//需要随机的字符集合            System.Data.DataTable tempTable = new System.Data.DataTable();            tempTable.Columns.Add("Number");//给datatable添加一个名为Number的列            tempTable.PrimaryKey = new DataColumn[] { tempTable.Columns["Number"] };//为datatable设置主键            int y = 0;//计数的变量            DateTime dt1 = DateTime.Now;//记一下时间            while (tempTable.Rows.Count < 10)            {                //生成随机数                StringBuilder newRandom = new StringBuilder(8);                Random rd = new Random();                for (int i = 0; i < 8; i++)                {                    newRandom.Append(constant[rd.Next(36)]);//将随机生成的这个字符                }                //这个判断是防止重复的                if (tempTable == null || tempTable.Rows.Find(newRandom.ToString()) == null)                {                    y++;//这个只是个计数器,计算生成了多少个码                    DataRow row = tempTable.NewRow(); //创建一个DataRow对象                                    row["Number"] = newRandom.ToString();//一定要在一开始创建 table.Columns.Add("StartTelNum");                                                tempTable.Rows.Add(row);// NewRow只是创建,没有插入                }            }            //将datatable里面的每一条数据都放进sheet工作薄里面            for (int i = 0; i < tempTable.Rows.Count; i++)            {                for (int j = 0; j < tempTable.Columns.Count; j++)                {                    sheet.Cells[i + 2, j + 1] = tempTable.Rows[i][j].ToString();                }            }            //保存excel            sheet.SaveAs(@"G:\ws\ESM.xlsx", Type.Missing, Type.Missing, Type.Missing, Type.Missing, Type.Missing,                XlSaveAsAccessMode.xlNoChange, Type.Missing, Type.Missing, Type.Missing);            workBook.Close(false, Type.Missing, Type.Missing);//反正没有这句话要报错
0 0
原创粉丝点击