dictionary 只能遍历最后一个
OneAnnal()//是加载一条记录函数
         private void butAdd_Click(object sender, EventArgs e)
         {//添加按钮
             if (estimate())
             {
                 OneAnnal();
                 liquidation();//清空
                 singers.Add(singer.Stunumber,singer);//把每条记录加载到 singers
               }
         }
         private void butSave_Click(object sender, EventArgs e)
         {//保存按钮,保存到Excel
             string fileName = Application.StartupPath + "\\data\\"+classNumber+".xls";//获取文件路径
             //加载excel
             MSExcel.Application excelApp;
             MSExcel.Workbook excelDoc;
             excelApp = new MSExcel.ApplicationClass();
             Object Nothing = Missing.Value;
             excelDoc = excelApp.Workbooks.Add(Nothing);
             MSExcel.Worksheet ws = (MSExcel.Worksheet)excelDoc.Sheets[1];
             int i = 3;//从第三行开始写入
             foreach (Basis oneL in singers.Values)
             {//遍历dictionary
                 ws.Cells[i, 1] = oneL.Stunumber;
                 ws.Columns.AutoFit();//自动调整宽度
                 ws.Cells[i, 2] = oneL.Stuname;
                 ws.Columns.AutoFit();
                 ws.Cells[i, 3] = oneL.Idcard;
                 ws.Columns.AutoFit();
                 ws.Cells[i, 4] = oneL.Sex;
                 ws.Columns.AutoFit();
                 ws.Cells[i, 5] = oneL.Birthrate;
                 ws.Columns.AutoFit();
                 ws.Cells[i, 6] = oneL.Nation;
                 ws.Columns.AutoFit();
                 ws.Cells[i, 7] = oneL.Handsetnumber;
                 ws.Columns.AutoFit();
                 ws.Cells[i, 8] = oneL.QQ;
                 ws.Columns.AutoFit();
                 ws.Cells[i, 9] = oneL.Bedchamber;
                 ws.Columns.AutoFit();
                 ws.Cells[i, 10] = oneL.Houseaddress;
                 ws.Columns.AutoFit();
                 ws.Cells[i, 11] = i.ToString();
                 i++;//行数增加
             }
现在写到excel都是最后一条记录
------解决方案--------------------