导出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/ ,如需转载,请注明出处,否则将追究法律责任。