答案 0 :(得分:15)
答案 1 :(得分:3)
答案 2 :(得分:1)
我已经解决了类似问题的问题。就像你有一个IEnumerable
IEnumerable<TaskSheetHead> taskSheetHead = new TaskSheetHeadService().GetEmployeeTimesheet(entity);
因此,如果你想从中创建一个excel只需创建一个工作簿
var workbook = new HSSFWorkbook();
var sheet = workbook.CreateSheet();
循环迭代,然后将其添加到工作表
foreach (TaskSheetHead taskSheethead in taskSheetHead)
{
//decimal totalTask = decimal.Zero;
//double totalTime = 0;
foreach (TaskSheet taskSheet in taskSheethead.TaskSheets)
{
var row2 = sheet.CreateRow(rowNumber++);
row2.CreateCell(0).SetCellValue(taskSheethead.Date.ToString("MMMM dd, yyyy"));
row2.CreateCell(1).SetCellValue(taskSheet.Task.Project.ProjectName + ":" + taskSheet.Task.Title + "-" + taskSheet.Comment);
row2.CreateCell(2).SetCellValue(taskSheet.ExpendedHour);
row2.CreateCell(3).SetCellValue(taskSheet.IsBilledToClient);
//totalTask += 1;
//totalTime += taskSheet.ExpendedHour;
}
var row3 = sheet.CreateRow(rowNumber++);
row3.CreateCell(0).SetCellValue("");
row3.CreateCell(1).SetCellValue("");
row3.CreateCell(2).SetCellValue("");
row3.CreateCell(3).SetCellValue("");
}
这里我有另一个子列表,因此我使用内循环迭代。做你的选择。