• 导入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 />");
                    }
                }
            }
        }
    }
  • 相关阅读:
    日志类
    sql查询数据并导出问题
    高并发系统设计(十七):【系统架构】微服务化后,系统架构要如何改造?
    高并发系统设计(十五):【消息队列】如何降低消息队列系统中消息的延迟?
    高并发系统设计(十四):【消息队列】如何消息不丢失?并且保证消息仅仅被消费一次?
    高并发系统设计(十三):消息队列的三大作用:削峰填谷、异步处理、模块解耦
    高并发系统设计(十二):【缓存的正确使用姿势】缓存穿透了怎么办?如何最大程度避免缓存穿透
    高并发系统设计(十一):【缓存的正确使用姿势】缓存如何做到高可用?
    ThinkPad X1 Carbon无法识别第二屏幕
    如何设置两个TPLink路由器桥接
  • 原文地址:https://www.cnblogs.com/Zpyboke/p/5242681.html
Copyright © 2020-2023  润新知