专干老熟女a片,日韩毛片免费无码无毒视频观看,日韩中文字幕免费视频,解开老师裙子猛烈进入动漫

IT技術

將Excel表中的數據導入到數據庫中
作者:
來源: 本站
發布日期: 2018/3/15 15:47:27
點擊量: 3463次
【 字體:
背景顏色:

                                將Exce表中的數據導入到數據庫中


      我們程序員有些時候會有將客戶表中的數據導入到項目的表中的需求,用來做數據基礎,那么就要一些小技巧,本文就做過的一些實例出發談一談。
  1. 首先頁面上的按鈕
   <td > 
   <input id="Fileexcle" type="file" runat="server"  class="fileword" />
       <asp:Button ID="fileUpload" runat="server"  Text="導入數據" OnClick="fileUpload_Click"/>請選擇Excle文件上傳,注意格式(.xls/.xlsx)</td>   
  創建一個按鈕,申明只識別的文件格式
  1. 后天頁面
以上按鈕為例:
創建onclick事件:
protected void fileUpload_Click(object sender, EventArgs e)
    {
        if (Fileexcle.PostedFile.FileName == "")//獲取文件名稱
        {
            JscriptPrint("請選擇要上傳的Excel文件!", "list.aspx", "Error");
            return;
        }
        string fileName = Fileexcle.PostedFile.FileName;
        int extendNameIndex = fileName.LastIndexOf(".");
        string extendName = fileName.Substring(extendNameIndex);
        //驗證是否為Exel格式
        if (extendName.ToLower() == ".xls" || extendName.ToLower() == ".xlsx")
        {
            result = upload(Fileexcle);//upload方法是獲取文件路徑的
            if (result.Length != 0)
            {
              InsertData();//將Excel表中的數據導入到表中方法
              DateBind();
            }
            else
            {
               JscriptPrint("上傳失敗!", "ImportTest.aspx", "Error");
            }
        }
        else
        {
            JscriptPrint("請選擇正確的Excel文件(.xls/.xlsx)!", "ImportTest.aspx", "Error");
            return;
        }

    }


Upload方法
/// <summary>
   /// 獲取上傳文件路徑
   /// </summary>
   /// <param name="uploadFiles">上傳文件的控件名稱</param>
/// <returns>返回路徑</returns>
public string upload(System.Web.UI.HtmlControls.HtmlInputFile uploadFiles)
{
    string fileName = uploadFiles.PostedFile.FileName;
    int extendNameIndex = fileName.LastIndexOf(".");
    string extendName = fileName.Substring(extendNameIndex + 1);
    string newName = DateTime.Now.ToString("yyyyMMddHHmmss");
    string path = "0";
    try
    {
        newName += uploadFiles.PostedFile.ContentLength.ToString();
        path = System.Web.HttpContext.Current.Server.MapPath("~/upload/excel/");
        if (!Directory.Exists(path))
        {
            Directory.CreateDirectory(path);
        }
        path += "¥¥" + newName + "." + extendName;
        uploadFiles.PostedFile.SaveAs(path);
    }
    catch
    {
        return "0";
    }
    return path;
}


InsertData方法
private void InsertData()
    {
        list = getList();//首先獲取數據源
        if (list.Count() > 0)
        {
            int i = 0, j = 0;
            using (Entities db = new Entities())
            {
                string s = "";
                foreach (var li in list)//遍歷集合
                {
                    S_ServiceFee donate = new S_ServiceFee();                
                     donate.SDepartMent = li.SDepartMent;
                    donate.SName = li.SName;
                    donate.SEducation = li.SEducation;
                    donate.Station = li.Station;

          db.S_ServiceFee.Add(donate);

                    i += 1;
                    j += 1;
                    db.SaveChanges();                               
                 }
                s += "本次成功導入" + i + "條數據,總條數為:" + list.Count();
                JscriptPrint(s + "操作成功!", "ImportTest.aspx", "Success");
            }
        }
}


getList()方法
protected List<data> getList()
    {
        List<data> list = new List<data>();//申明集合數據類型
        Cells cells;
        Workbook workbook = new Workbook();
        try
        {
            workbook.Open(result);
        }
        catch (ArgumentOutOfRangeException ex)
        {
            //  Response.Write(ex.ToString());
        }
        cells = workbook.Worksheets[0].Cells;
        PropertyInfo[] ps = typeof(data).GetProperties();
        if (cells.MaxDataColumn + 1 < ps.Count() - 2)
        {
            JscriptPrint("模板讀取有誤" + "實際字段數為:" + (cells.MaxDataColumn + 1) + ",正確字段數應為:" + (ps.Count() - 2), "", "Error");
            return list;
        }
       string s = "";
        for (int i = 1; i < cells.MaxDataRow + 1; i += 1)//表中的行數,從第二行開始,考慮到第一行是表頭數據
        {
           data d = new data();
            d.sort = i + 1;
            for (int j = 0; j < cells.MaxDataColumn + 1; j += 1)//表中的列數
            {
                s = cells[i, j].StringValue.Trim();//獲取列行對應的數據
               //一行行的讀取數據,插入數據庫的代碼也可以在這里寫
                switch (j)
                {
                    case 0:
                        d.SDepartMent = s;//表示導入表中的第二行第一列中的數據
                        break;
                    case 1:
                        d.SName = s;
                        break;
                    case 2:
                        d.SEducation = s;
                        break;
                    case 3:

                        d.Station = s;

                        break;
                    case 4:
                        d.PayStation = s;
                        break;
                    case 5:
                       d.PayFuD = s;
                        Break;            
                    default:
                        break;
                }
            }
            list.Add(d);
        }
        return list;


    }


 


上面data類
public class data
    {
        public string SId { get; set; }
        public string SDepartMent { get; set; }
        public string SName { get; set; }
        public string SEducation { get; set; }     
        public string JiDJx { get; set; }
        public int sort { get; set; }
    }


 


  1. 總結
           總體思想:首先數據源獲取(要導入的表格數據),再將它讀取并存儲到臨時的集合中,最后遍歷集合,將它付給你new的新對象保存。
           本人初級程序員,如有錯誤,請指出,再者有更高明的做法,歡迎討論。



掃一掃在手機打開當前頁

Contact

聯系我們

告訴我們您想要的吧!我們為當地客戶提供專業、及時的服務
地址:云南省昆明市白云路368號
電話:400-871-8716 (工作時間:09:00-18:00(周一至周五))
何總:23592693
李總:53815112
主站蜘蛛池模板: 咸丰县| 林州市| 萍乡市| 漯河市| 宝山区| 信阳市| 刚察县| 隆尧县| 大丰市| 中江县| 壤塘县| 玉门市| 伊宁县| 云林县| 苗栗县| 北川| 英超| 新源县| 织金县| 平南县| 鹤峰县| 大石桥市| 泰宁县| 宝山区| 哈巴河县| 靖边县| 县级市| 云霄县| 海兴县| 陕西省| 衡南县| 淳安县| 玉门市| 霞浦县| 五家渠市| 加查县| 无为县| 丹东市| 靖边县| 长兴县| 合山市|