用C#生成n条不重复的n位验证码
2016-01-19 15:38
696 查看
例:生成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);//反正没有这句话要报错
相关文章推荐
- 跟siki老师学C#第四天(练习部分)
- C#调用阿里云CDN API刷新缓存
- c#.net网页跳转七种方法
- c#中的序列化与反序列化
- C#获取显示器宽度高度,桌面宽度高度等
- C#异步:实现一个最简单的异步
- C#事件
- C# 单击按钮打开文件对话框
- C#多线程(Thread)开发基础
- c#常用描述统计方法总结
- C#及wpf WebBrowser截图
- C# 打开TXT文件读取内容
- 关于C# this 指针
- c#事务
- C# double 四舍五入
- C#读取歌曲列表获取单个音乐文件信息
- [C#].NET中的三种Timer的区别和用法
- C#递归扫描文件夹中的文件
- C# 向ListView中添加多列数据的方法
- C#索引器的详细用法