导出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; }