ITPub博客

首页 > > > 导出excel 递归worksheet 导出的时候没有数据

导出excel 递归worksheet 导出的时候没有数据

作者:54xx 时间:2019-08-30 11:45:42 0 删除 编辑

导出excel 递归worksheet 导出的时候没有数据

public static void ExportExcel(DataTable dt)
        {
            var excel1 = new Microsoft.Office.Interop.Excel.Application();
            excel1.DisplayAlerts = false; //不显示报警
            var workbook1 = excel1.Workbooks.Add(Type.Missing); //创建book
            excel1.Visible = false;//不可见
            var worksheet1 = (Microsoft.Office.Interop.Excel.Worksheet)workbook1.Worksheets["sheet1"];  //表头   
            //Excel里从第1行,第1列计算            
            for (int i = 0; i < dt.Columns.Count; i++)
            {
                worksheet1.Cells[1, i + 1] = dt.Columns[i].ColumnName;
            }

            int shendu = 0;

            //worksheet1 = ChildrenBale(0, dt, 2, shendu, worksheet1);
            string fileName = DateTime.Now.ToString("yyyyMMddHHmmss") + ".xls";  //文件名称
            string filePath = System.Web.HttpContext.Current.Server.MapPath("~/Upload/Excel/" + fileName);  //文件路径
            workbook1.SaveAs(filePath, Type.Missing, Type.Missing, Type.Missing, Type.Missing, Type.Missing, Microsoft.Office.Interop.Excel.XlSaveAsAccessMode.xlNoChange, Type.Missing, Type.Missing, Type.Missing, Type.Missing, Type.Missing);
            excel1.Workbooks.Close(); //关闭book
            excel1.Quit();
        }
    public static Microsoft.Office.Interop.Excel.Worksheet ChildrenBale(int pid, DataTable dt, int rows, int shendu, Microsoft.Office.Interop.Excel.Worksheet sheet)
        {
            DataRow[] dr = null;
            if (pid == 0)
            {
                dr = dt.Select("父编号=" + pid + " or 父编号 is null ");
            }
            else
            {
                dr = dt.Select("父编号=" + pid);
            }

            var cl = dr.Length - 1;
            var co = dt.Columns.Count - 1;
            for (int i = 0; i <= cl; i++)
            {
                for (int j = 2; j <= co; j++)
                {
                    try
                    {
                        sheet.Cells[rows, i + 1] = dr[i][j].ToString();
                    }
                    catch (Exception)
                    {

                        throw;
                    }
                }
                shendu++;
                pid = int.Parse(dr[i]["编号"].ToString());
                sheet = ChildrenBale(pid, dt, rows++, shendu, sheet);
                shendu--;
            }
            return sheet;

        }


来自 “ ITPUB博客 ” ,链接:https://blog.itpub.net/1976/viewspace-3156555/ ,如需转载,请注明出处,否则将追究法律责任。

请登录后发表评论 登录
全部评论

注册时间:2019-04-16

  • 博文量
    226
  • 访问量
    1611