先将数据库中的数据读取到DataTable中,然后调用下面的代码,"cells.Add(1, 1, "表头1");"这段代码的意思是在Excel中添加一行表头,比如“姓名”,“性别”,“联系电话”等,需要几列就对应的添加几列。“cells.Add(2 + row, 1, dt.Rows[row]["对应表头1的字段"]);”这段代码的意思是获取对应表头的数据,比如表头1如果为“姓名”,这里"对应表头1的字段"就改成字段"Name"。
DataTable dt = GetDataTable(); if (dt == null) return; try { XlsDocument xls = new XlsDocument(); string fileName = Guid.NewGuid().ToString() + ".xls"; xls.FileName = fileName; string sheetName = "Sheet1"; Worksheet sheet = xls.Workbook.Worksheets.Add(sheetName); Cells cells = sheet.Cells; cells.Add(1, 1, "表头1"); cells.Add(1, 2, "表头2"); cells.Add(1, 3, "表头3"); cells.Add(1, 4, "表头4"); cells.Add(1, 5, "表头5"); cells.Add(1, 6, "表头6"); cells.Add(1, 7, "表头7"); cells.Add(1, 8, "表头8"); for (int row = 0; row < dt.Rows.Count; row++) { cells.Add(2 + row, 1, dt.Rows[row]["对应表头1的字段"]); cells.Add(2 + row, 2, dt.Rows[row]["对应表头2的字段"]); cells.Add(2 + row, 3, dt.Rows[row]["对应表头3的字段"]); cells.Add(2 + row, 4, dt.Rows[row]["对应表头4的字段"]); cells.Add(2 + row, 5, dt.Rows[row]["对应表头5的字段"]); cells.Add(2 + row, 6, dt.Rows[row]["对应表头6的字段"]); cells.Add(2 + row, 7, dt.Rows[row]["对应表头7的字段"]); cells.Add(2 + row, 8, dt.Rows[row]["对应表头8的字段"]); } string filePath = Server.MapPath("~/tmp/"); xls.Save(filePath); xls = null; } catch (Exception) { throw; }
原文地址:http://ruiwen.blog.51cto.com/8852761/1576362