zoukankan      html  css  js  c++  java
  • 导入Excel表的前台页面和后台代码

    <%@ Page Language="C#" AutoEventWireup="true" CodeFile="Sabbaticalimport.aspx.cs" Inherits="hr_Sabbatical_Sabbaticalimport" %>
    
    <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
    
    <html xmlns="http://www.w3.org/1999/xhtml">
    <head id="Head1" runat="server">
        <title>公休导入</title>
            <link href="../../common/css/common.css" rel="stylesheet" type="text/css" />
        <link href="../../common/themes/default/easyui.css" rel="stylesheet" type="text/css" />
        <link href="../../common/themes/icon.css" rel="stylesheet" type="text/css" />
        <script src="../../common/js/jquery-1.7.1.min.js" type="text/javascript"></script>
        <script src="../../common/js/common.js" type="text/javascript"></script>
        <script src="../../common/DatePicker/WdatePicker.js" type="text/javascript"></script>
        <script src="../../common/js/jquery.easyui.min.js" type="text/javascript"></script>
        <script src="../../common/js/jquery.urldecoder.min.js" type="text/javascript"></script>
        <script src="../../common/js/loading.js" type="text/javascript"></script>
        <script src="js/SabbaticalEdit.js" type="text/javascript"></script>
        <script type="text/javascript">
            $(function () {
                loading.getLoadingHtml({ status: '0', explain: '正在为您处理,请稍后...' });
            });
        </script>
    </head>
    <body>
        <form id="form1" runat="server">
    
                    <div class="title" style ="overflow:hidden;">
                <table style="100%;" border="0" cellpadding="0" cellspacing="0">
                    <tr>
                        <td style="text-align:left;height:41px;color:#2153A0;font-size:14px;font-weight:bold;text-indent:10px;">
                            公休导入
                            <span class="back"><a href="SabbaticalList.aspx?">返回</a></span>
                        </td>
                        <td>
                            &nbsp;
                        </td>
                    </tr>
                </table>
            </div>
        <div>
    
                <div>
                <asp:Label ID="lblMessage" runat="server" Font-Bold="True" ForeColor="Red" EnableViewState="false"></asp:Label>
                </div>
                <div><a href="../exceltemplate/员工公休信息.xls">下载公休基本信息模板.xls</a></div>
                <div>
                    <asp:FileUpload ID="fileSocial" class="btn" style="200px;margin-right:20px;height:25px;" runat="server"></asp:FileUpload>
                    <asp:Button ID="btnUploadSocial" runat="server" Text="导入公休信息" class="btn" style="100px;margin-right:20px;height:25px;" OnClientClick="return CheckResult();" onclick="btnUploadSocial_Click" /><br />
                </div> 
        </div>
        </form>
    </body>
    </html>
    using System;
    using System.Data;
    using System.Collections;
    using System.Collections.Generic;
    using System.Linq;
    using System.Web;
    using System.Web.UI;
    using System.Web.UI.WebControls;
    using System.Data.OleDb;
    using System.IO;
    using System.Text;
    using Common;
    using BLL.Hr;
    using ChengJian.Com.UI;
    
    public partial class hr_Sabbatical_Sabbaticalimport : System.Web.UI.Page
    {
        private const string UPLOADPATH = "uploadpath";
        private BaseFunction bFunction = new BaseFunction();
        protected void Page_Load(object sender, EventArgs e)
        {
    
        }
        protected void btnUploadSocial_Click(object sender, EventArgs e)
        {
            string msg = "导入公休信息结果<br /><br />";
            if (fileSocial.HasFile)
            {
                try
                {
                    StringBuilder message = new StringBuilder();
                    DataTable excelData = getFileDataTable(sender, message);
    
                    insertSocial(excelData, message);
                    if (string.IsNullOrEmpty(message.ToString())) msg += "导入成功!";
                    else msg += message.ToString();
    
                    lblMessage.Text = msg;
                }
                catch (Exception ex)
                {
                    lblMessage.Text = msg + ex.Message;
                }
            }
            else
            {
                lblMessage.Text = msg + "请选择文件!";
            }
        }
    
        private DataTable getFileDataTable(object sender, StringBuilder message)
        {
            OleDbConnection conn = new OleDbConnection();
            OleDbCommand cmd = new OleDbCommand();
            OleDbDataAdapter da = new OleDbDataAdapter();
            DataSet ds = new DataSet();
            string path = ConfigHelper.GetConfigStr(UPLOADPATH);
            path += "drawWorkloadExcel";
            DataTable excelData = null;
    
            try
            {
                string query = null;
                string connString = "";
                string strFileName = DateTime.Now.ToString("ddMMyyyy_HHmmss");
                string strFileType = string.Empty;
    
                Button button = (Button)sender;
    
                        strFileType = System.IO.Path.GetExtension(fileSocial.FileName).ToString().ToLower();
    
    
                if (strFileType == ".xls" || strFileType == ".xlsx")
                {
                    if (!Directory.Exists(path))
                    {
                        Directory.CreateDirectory(path);
                    }
    
                    path += "/" + strFileName + strFileType;
    
                            fileSocial.SaveAs(path);
    
                }
                else
                {
                    message.Append("只允许上传Excel文件类型!");
                    return null;
                }
    
                if (strFileType.Trim() == ".xls")
                {
                    connString = "Provider=Microsoft.Jet.OLEDB.4.0;Data Source=" + path + ";Extended Properties="Excel 8.0;HDR=Yes;IMEX=2"";
                }
                else if (strFileType.Trim() == ".xlsx")
                {
                    connString = "Provider=Microsoft.ACE.OLEDB.12.0;Data Source=" + path + ";Extended Properties="Excel 12.0;HDR=Yes;IMEX=2"";
                }
    
                conn = new OleDbConnection(connString);
                if (conn.State == ConnectionState.Closed) conn.Open();
    
                DataTable schemaTable = conn.GetOleDbSchemaTable(System.Data.OleDb.OleDbSchemaGuid.Tables, null);
                string tableName = schemaTable.Rows[0][2].ToString().Trim();
                query = "select * from [" + tableName + "]";
    
                cmd = new OleDbCommand(query, conn);
                da = new OleDbDataAdapter(cmd);
                ds = new DataSet();
                da.Fill(ds);
    
                excelData = ds.Tables[0];
            }
            catch (Exception ex)
            {
                excelData = null;
                message.Append(ex.Message);
            }
            finally
            {
                da.Dispose();
                conn.Close();
                conn.Dispose();
                if (File.Exists(path))
                {
                    File.Delete(path);
                }
            }
    
            return excelData;
        }
    
        private Hashtable getMemberHt()
        {
            Hashtable ht = new Hashtable();
            string sql = "select SysId, MemberMsgCode from sz_hr_Members where IsDel  = 0 and membertype = '0';";
            DataTable data = bFunction.GetDataTable(sql);
            if (data != null)
            {
                for (int i = 0; i < data.Rows.Count; i++)
                {
                    if (data.Rows[i]["MemberMsgCode"].ToString()==""||data.Rows[i]["MemberMsgCode"].ToString()==null)
                    {
                        ht.Add("0000" + i + "", data.Rows[i]["SysId"].ToString());
                    }
                    else
                    {
                        ht.Add(data.Rows[i]["MemberMsgCode"].ToString(), data.Rows[i]["SysId"].ToString());
                    }
                    
                }
            }
            return ht;
        }
    
        private void insertSocial(DataTable data, StringBuilder message)
        {
            sz_StaffSabbaticalBLL dal=new sz_StaffSabbaticalBLL();
            string Createtime=DateTime.Now.ToString("yyyy-MM-dd");
            if (data != null)
            {
                Hashtable ht = getMemberHt();
                for (int i = 0; i < data.Rows.Count; i++)
                {
                    string SysId = UUIDGenearte.getUUID();
                    string MemberMsgCode = data.Rows[i][1].ToString();
                    string MemberName = data.Rows[i][0].ToString();
                    if (string.IsNullOrEmpty(MemberMsgCode))
                    {
                        message.Append("Excel第" + (i + 2) + "行人员:" + MemberName + ",编号:" + MemberMsgCode + "在人员基本信息中不存在,导入失败!<br />");
                        continue;
                    }
                    string MemberSysId = ht[MemberMsgCode] != null ? ht[MemberMsgCode].ToString() : string.Empty;
                    if (string.IsNullOrEmpty(MemberSysId))
                    {
                        message.Append("Excel第" + (i + 2) + "行人员:" + MemberName + ",编号:" + MemberMsgCode + "在人员基本信息中不存在,导入失败!<br />");
                        continue;
                    }
                    string Staffname = data.Rows[i][0].ToString().Trim();
                    string StaffSysId = data.Rows[i][1].ToString().Trim();
                    string RestCount = data.Rows[i][2].ToString().Trim();
                    string UsedCount = data.Rows[i][3].ToString().Trim();
                   
    
                        try
                    {
                        bool result =dal.AddStaffSabbatical(SysId,Staffname,StaffSysId,RestCount,UsedCount,Createtime);
    
                        if (result) { }
                        else
                        {
                            message.Append("Excel第" + (i + 2) + "行导入失败, 填写信息有误, 请核实!<br />");
                        }
                    }
                    catch (Exception ex)
                    {
                        message.Append("异常信息:" + ex.Message + "<br />");
                    }
                }
            }
        }
    }
  • 相关阅读:
    EXTJS 4.2 资料 控件之checkboxgroup的用法(静态数据)
    EXTJS 4.2 资料 控件之Window窗体相关属性的用法
    EXTJS 4.2 资料 控件之textfield文本框加事件的用法
    Entity Framework 学习笔记(一)之数据模型 数据库
    EXTJS 4.2 资料 控件之checkboxgroup的用法(动态数据)
    EXTJS 4.2 资料 控件之Grid 列鼠标悬停提示
    Entity Framework 学习笔记(二)之数据模型 Model 使用过程
    EXTJS 4.2 资料 控件之radiogroup 的用法
    EXTJS API
    vue移动端弹框组件,vue-layer-mobile
  • 原文地址:https://www.cnblogs.com/Zpyboke/p/5242681.html
Copyright © 2011-2022 走看看