阅读:4709 回复:8
余滨伟
8

帖子

15

跟帖

1091

积分

中级榴莲
中级榴莲

[综合]批量导入用户和组织的功能有吗 ?

楼主#
更多 发布于:2017-01-18 16:48
如题,有这个功能吗?如果有,有模板么?在哪里导入?
武汉技术支持团队
40

帖子

1181

跟帖

3860

积分

论坛版主
论坛版主
1楼#
发布于:2017-01-22 14:06
帖内置顶  –  H3BPM  –  2017-02-09 09:52
有Excel导入组织架构的模板和关键代码


前台代码:


<div>


            <asp:FileUpload ID="FileUpload7" runat="server" Width="200px" /><div>
                

                组织信息导入
                <asp:TextBox runat="server" ID="TextBox3" Width="100px"/>  
  <asp:Button ID="Button7" runat="server" Text="导入" Width="100px" OnClick="Button7_Click" />
            </div>
        </div>


后台代码:
protected void Button7_Click(object sender, EventArgs e)
    {
        IWorkbook workbook = null;
        if (FileUpload7.HasFile)
        {
            string upfile = Server.MapPath("") + "/Temp/" + FileUpload7.PostedFile.FileName;
            if (!Directory.Exists(Server.MapPath("") + "/Temp/"))
            {
                Directory.CreateDirectory(Server.MapPath("") + "/Temp/");
            }
            FileUpload7.PostedFile.SaveAs(upfile);


            string newpath = upfile;




            using (FileStream fs = File.OpenRead(newpath)) //打开myxls.xls文件
            {
                if (FileUpload7.PostedFile.FileName.IndexOf(".xlsx") > 0) // 2007版本
                    workbook = new XSSFWorkbook(fs);
                else if (FileUpload7.PostedFile.FileName.IndexOf(".xls") > 0) // 2003版本
                    workbook = new HSSFWorkbook(fs);


                #region 导入组织信息


                ISheet sheet = workbook.GetSheetAt(0); //读取当前表数据
                for (int j = 1; j <= sheet.LastRowNum; j++) //LastRowNum 是当前表的总行数
                {
                    IRow row = sheet.GetRow(j); //读取当前行数据
                    if (row != null&&row.Cells.Count>0)
                    {


                        #region 导入单位信息


                        var code = row.Cells[0].StringCellValue.Trim();
                        var parentid = OThinker.H3.WorkSheet.AppUtility.Engine.Organization.Company.CompanyID;
                        var name = row.Cells[2].StringCellValue.Trim();


                        var unit = new OThinker.Organization.OrganizationUnit()
                        {
                            ObjectID = Guid.NewGuid().ToString(),
                            Code = code,
                            CompanyID = OThinker.H3.WorkSheet.AppUtility.Engine.Organization.Company.CompanyID,
                            Name = name,
                            ParentID = parentid,
                            // Sort Key
                            SortKey = j,
                            // 类型
                            CategoryID = null




                        };
                        // 写入服务器
                        var result = OThinker.Organization.HandleResult.SUCCESS;




                        if (OThinker.H3.WorkSheet.AppUtility.Engine.Organization.GetUnitByCode(code) != null)
                        {
                            result = OThinker.H3.WorkSheet.AppUtility.Engine.Organization.UpdateUnit(null, unit);
                        }
                        else
                        {
                            result = OThinker.H3.WorkSheet.AppUtility.Engine.Organization.AddUnit(null, unit);


                        }
                        if (result != OThinker.Organization.HandleResult.SUCCESS)
                        {
                            OThinker.H3.WorkSheet.AppUtility.Engine.LogWriter.Write(name);


                        }


                        #endregion




                    }
                }




                #endregion


                #region 导入用户信息
                sheet = workbook.GetSheetAt(1); //读取当前表数据
                for (int j = 1; j <= sheet.LastRowNum; j++) //LastRowNum 是当前表的总行数
                {
                    IRow row = sheet.GetRow(j); //读取当前行数据
                    if (row != null && row.Cells.Count > 0)
                    {


                        #region 导入单位信息


                        var oucode = row.Cells[0].StringCellValue.Trim();


                        var code = row.Cells[1].StringCellValue.Trim();
                        var parentou = OThinker.H3.WorkSheet.AppUtility.Engine.Organization.GetUnitByCode(oucode);




                        var name = row.Cells[2].StringCellValue.Trim();
                        var employeenumber = row.Cells[3].ToString().Trim().Replace(" ", "");
                        var birthday = row.Cells[4].DateCellValue;


                        var email = row.Cells[5].ToString().Trim();
                        var officemobile = row.Cells[6]==null?"": row.Cells[6].ToString().Trim();


                        var unit = new OThinker.Organization.User()
                        {
                            ObjectID = Guid.NewGuid().ToString(),
                            Code = code,
                            CompanyID = OThinker.H3.WorkSheet.AppUtility.Engine.Organization.Company.CompanyID,
                            Name = name,
                            ParentID = parentou == null ? OThinker.H3.WorkSheet.AppUtility.Engine.Organization.Company.CompanyID :
                            parentou.ObjectID,
                            // Sort Key
                            SortKey = j,
                            // 类型
                            CategoryID = null,
                            EmployeeNumber = employeenumber,
                            OfficePhone = officemobile,
                            Email = email,
                            Birthday = birthday






                        };
                        // 写入服务器
                        OThinker.Organization.HandleResult result = OThinker.Organization.HandleResult.SUCCESS;




                        if (OThinker.H3.WorkSheet.AppUtility.Engine.Organization.GetUserByEmployeeNumber(code) != null)
                        {
                            result = OThinker.H3.WorkSheet.AppUtility.Engine.Organization.UpdateUnit(null, unit);
                        }
                        else
                        {
                            result = OThinker.H3.WorkSheet.AppUtility.Engine.Organization.AddUnit(null, unit);


                        }
                        if (result != OThinker.Organization.HandleResult.SUCCESS)
                        {
                            OThinker.H3.WorkSheet.AppUtility.Engine.LogWriter.Write(name);


                        }




                        #endregion




                    }
                }
                #endregion








                File.Delete(upfile);
            }
        }


    }
H3BPM
655

帖子

2504

跟帖

46410

积分

管理员
管理员
  • 社区居民
2楼#
发布于:2017-01-18 17:03
10月签到活动奖励发放啦:http://bbs.h3bpm.com/read.php?tid=5377&fid=5
秦始皇
167

帖子

1099

跟帖

19415

积分

论坛版主
论坛版主
  • 社区居民
  • 忠实会员
3楼#
发布于:2017-01-20 16:05
进入后台管理,点开组织机构下面的同步设置。
秦始皇
167

帖子

1099

跟帖

19415

积分

论坛版主
论坛版主
  • 社区居民
  • 忠实会员
4楼#
发布于:2017-01-20 16:07
如果没有现成的AD用户,就做个EXCEL表导入数据到数据库。
H3BPM
655

帖子

2504

跟帖

46410

积分

管理员
管理员
  • 社区居民
5楼#
发布于:2017-01-20 16:09
秦始皇:如果没有现成的AD用户,就做个EXCEL表导入数据到数据库。回到原帖
10月签到活动奖励发放啦:http://bbs.h3bpm.com/read.php?tid=5377&fid=5
武汉技术支持团队
40

帖子

1181

跟帖

3860

积分

论坛版主
论坛版主
6楼#
发布于:2017-01-22 10:09
2楼的方法可行!
武汉技术支持团队
40

帖子

1181

跟帖

3860

积分

论坛版主
论坛版主
7楼#
发布于:2017-01-22 14:06
有Excel导入组织架构的模板和关键代码


前台代码:


<div>


            <asp:FileUpload ID="FileUpload7" runat="server" Width="200px" /><div>
                

                组织信息导入
                <asp:TextBox runat="server" ID="TextBox3" Width="100px"/>  
  <asp:Button ID="Button7" runat="server" Text="导入" Width="100px" OnClick="Button7_Click" />
            </div>
        </div>


后台代码:
protected void Button7_Click(object sender, EventArgs e)
    {
        IWorkbook workbook = null;
        if (FileUpload7.HasFile)
        {
            string upfile = Server.MapPath("") + "/Temp/" + FileUpload7.PostedFile.FileName;
            if (!Directory.Exists(Server.MapPath("") + "/Temp/"))
            {
                Directory.CreateDirectory(Server.MapPath("") + "/Temp/");
            }
            FileUpload7.PostedFile.SaveAs(upfile);


            string newpath = upfile;




            using (FileStream fs = File.OpenRead(newpath)) //打开myxls.xls文件
            {
                if (FileUpload7.PostedFile.FileName.IndexOf(".xlsx") > 0) // 2007版本
                    workbook = new XSSFWorkbook(fs);
                else if (FileUpload7.PostedFile.FileName.IndexOf(".xls") > 0) // 2003版本
                    workbook = new HSSFWorkbook(fs);


                #region 导入组织信息


                ISheet sheet = workbook.GetSheetAt(0); //读取当前表数据
                for (int j = 1; j <= sheet.LastRowNum; j++) //LastRowNum 是当前表的总行数
                {
                    IRow row = sheet.GetRow(j); //读取当前行数据
                    if (row != null&&row.Cells.Count>0)
                    {


                        #region 导入单位信息


                        var code = row.Cells[0].StringCellValue.Trim();
                        var parentid = OThinker.H3.WorkSheet.AppUtility.Engine.Organization.Company.CompanyID;
                        var name = row.Cells[2].StringCellValue.Trim();


                        var unit = new OThinker.Organization.OrganizationUnit()
                        {
                            ObjectID = Guid.NewGuid().ToString(),
                            Code = code,
                            CompanyID = OThinker.H3.WorkSheet.AppUtility.Engine.Organization.Company.CompanyID,
                            Name = name,
                            ParentID = parentid,
                            // Sort Key
                            SortKey = j,
                            // 类型
                            CategoryID = null




                        };
                        // 写入服务器
                        var result = OThinker.Organization.HandleResult.SUCCESS;




                        if (OThinker.H3.WorkSheet.AppUtility.Engine.Organization.GetUnitByCode(code) != null)
                        {
                            result = OThinker.H3.WorkSheet.AppUtility.Engine.Organization.UpdateUnit(null, unit);
                        }
                        else
                        {
                            result = OThinker.H3.WorkSheet.AppUtility.Engine.Organization.AddUnit(null, unit);


                        }
                        if (result != OThinker.Organization.HandleResult.SUCCESS)
                        {
                            OThinker.H3.WorkSheet.AppUtility.Engine.LogWriter.Write(name);


                        }


                        #endregion




                    }
                }




                #endregion


                #region 导入用户信息
                sheet = workbook.GetSheetAt(1); //读取当前表数据
                for (int j = 1; j <= sheet.LastRowNum; j++) //LastRowNum 是当前表的总行数
                {
                    IRow row = sheet.GetRow(j); //读取当前行数据
                    if (row != null && row.Cells.Count > 0)
                    {


                        #region 导入单位信息


                        var oucode = row.Cells[0].StringCellValue.Trim();


                        var code = row.Cells[1].StringCellValue.Trim();
                        var parentou = OThinker.H3.WorkSheet.AppUtility.Engine.Organization.GetUnitByCode(oucode);




                        var name = row.Cells[2].StringCellValue.Trim();
                        var employeenumber = row.Cells[3].ToString().Trim().Replace(" ", "");
                        var birthday = row.Cells[4].DateCellValue;


                        var email = row.Cells[5].ToString().Trim();
                        var officemobile = row.Cells[6]==null?"": row.Cells[6].ToString().Trim();


                        var unit = new OThinker.Organization.User()
                        {
                            ObjectID = Guid.NewGuid().ToString(),
                            Code = code,
                            CompanyID = OThinker.H3.WorkSheet.AppUtility.Engine.Organization.Company.CompanyID,
                            Name = name,
                            ParentID = parentou == null ? OThinker.H3.WorkSheet.AppUtility.Engine.Organization.Company.CompanyID :
                            parentou.ObjectID,
                            // Sort Key
                            SortKey = j,
                            // 类型
                            CategoryID = null,
                            EmployeeNumber = employeenumber,
                            OfficePhone = officemobile,
                            Email = email,
                            Birthday = birthday






                        };
                        // 写入服务器
                        OThinker.Organization.HandleResult result = OThinker.Organization.HandleResult.SUCCESS;




                        if (OThinker.H3.WorkSheet.AppUtility.Engine.Organization.GetUserByEmployeeNumber(code) != null)
                        {
                            result = OThinker.H3.WorkSheet.AppUtility.Engine.Organization.UpdateUnit(null, unit);
                        }
                        else
                        {
                            result = OThinker.H3.WorkSheet.AppUtility.Engine.Organization.AddUnit(null, unit);


                        }
                        if (result != OThinker.Organization.HandleResult.SUCCESS)
                        {
                            OThinker.H3.WorkSheet.AppUtility.Engine.LogWriter.Write(name);


                        }




                        #endregion




                    }
                }
                #endregion








                File.Delete(upfile);
            }
        }


    }
武汉技术支持团队
40

帖子

1181

跟帖

3860

积分

论坛版主
论坛版主
8楼#
发布于:2017-01-22 14:10
Excel整理模板

图片:QQ截图20170122141110.png

东门之菀
9

帖子

47

跟帖

1438

积分

黄金榴莲
黄金榴莲
  • 社区居民
9楼#
发布于:2018-05-27 08:35
武汉技术支持团队:Excel整理模板回到原帖
请问下,我是小白,关键代码有了要怎么弄,完全不会啊,谢谢
游客

返回顶部