bất kỳ ai biết cách sử dụng hoặc một số thư viện để sử dụng cho điều này?xuất IEnumerable <T> sang Excel
Trả lời
Hãy xem ở đây cho phần thư viện:
Mã dưới đây là mã tôi sử dụng để chuyển đổi IEnumerable<T>
thành một cột DataTable có tên cho mỗi thuộc tính, cùng với các giá trị của mỗi mục trong IEnumerable dưới dạng hàng. Đó là một hop rất nhỏ từ này để tiết kiệm nó như là một file CSV
public class IEnumerableToDataTable
{
public static DataTable CreateDataTableForPropertiesOfType<T>()
{
DataTable dt = new DataTable();
PropertyInfo[] piT = typeof(T).GetProperties();
foreach (PropertyInfo pi in piT)
{
Type propertyType = null;
if (pi.PropertyType.IsGenericType)
{
propertyType = pi.PropertyType.GetGenericArguments()[0];
}
else
{
propertyType = pi.PropertyType;
}
DataColumn dc = new DataColumn(pi.Name, propertyType);
if (pi.CanRead)
{
dt.Columns.Add(dc);
}
}
return dt;
}
public static DataTable ToDataTable<T>(IEnumerable<T> items)
{
var table = CreateDataTableForPropertiesOfType<T>();
PropertyInfo[] piT = typeof(T).GetProperties();
foreach (var item in items)
{
var dr = table.NewRow();
for (int property = 0; property < table.Columns.Count; property++)
{
if (piT[property].CanRead)
{
dr[property] = piT[property].GetValue(item, null);
}
}
table.Rows.Add(dr);
}
return table;
}
}
Vì vậy, bạn có thể viết như sau để chuyển đổi dữ liệu của bạn vào một DataTable:
IEnumerable<Thing> values = GetMyIEnumerableValues();
var tableOfData = IEnumerableToDataTable.ToDataTable(values);
Khi nó ở đó, nó khá tầm thường để viết nó ra một tệp CSV hoặc bất kỳ định dạng nào khác mà bạn chọn, vì tất cả công việc phản chiếu "phức tạp" để trích xuất dữ liệu từ IEnumerable<T>
đã được thực hiện.
tôi đã giải quyết được một vấn đề tương tự như bạn hỏi. Giống như bạn có một IEnumerable
IEnumerable<TaskSheetHead> taskSheetHead = new TaskSheetHeadService().GetEmployeeTimesheet(entity);
Vì vậy, nếu bạn muốn thực hiện một excel từ này chỉ cần tạo một workbook
var workbook = new HSSFWorkbook();
var sheet = workbook.CreateSheet();
Và lặp với một vòng lặp và sau đó thêm nó vào bảng
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("");
}
Ở đây tôi có một danh sách con khác, do đó tôi đã lặp lại bằng cách sử dụng vòng lặp bên trong. Làm như bạn lựa chọn.
- 1. Xuất SQL sang Excel
- 2. Xuất từ PHP sang Excel
- 3. Xuất DataTable sang Excel File
- 4. php + jqgrid + xuất sang excel
- 5. Xuất dữ liệu ASP.Net sang Excel
- 6. Xuất sang Excel từ một Repeater?
- 7. Xuất Javascript hoặc Flash sang CSV/Excel
- 8. Xuất sang Excel JSF và PrimeFaces
- 9. Xuất sang Excel trong Asp.net MVC
- 10. Xuất báo cáo Jenkins sang Excel
- 11. C# (WinForms-App) xuất DataSet sang Excel
- 12. Xuất dữ liệu từ DBGrid sang Excel
- 13. Xuất Bảng HTML sang Excel bằng ASP.NET
- 14. Chuyển đổi IEnumerable <T> sang IList
- 15. IEnumerable <IEnumerable <T>> để IEnumerable <T> sử dụng LINQ
- 16. Flatten IEnumerable <IEnumerable <>>; hiểu Generics
- 17. Làm thế nào để chuyển đổi một IEnumerable <IEnumerable <T>> thành IEnumerable <T>
- 18. Sự khác nhau giữa IEnumerable và IEnumerable <T>?
- 19. Xuất dữ liệu không chuẩn hóa từ excel sang xml
- 20. Dữ liệu SilverlightGrid: Xuất sang excel hoặc csv
- 21. xuất kết quả truy vấn sql sang csv hoặc excel
- 22. Xuất từ SQL Server sang Excel với tiêu đề cột?
- 23. Xuất dữ liệu truy vấn SQL sang Excel
- 24. Xuất Bảng HTML sang Excel từ ASP.NET MVC
- 25. jQuery DataTables: xuất các cột riêng lẻ sang Excel
- 26. Tạo tùy chỉnh xuất sang Excel cho ReportViewer (rdlc)
- 27. xuất sang excel, pdf và doc bằng Ruby on Rails
- 28. Cách đơn giản để Xuất DataGridView sang Excel
- 29. Chuyển đổi IEnumerable sang DataTable
- 30. IEnumerable <string> chuỗi
bạn có cần nó để xuất trực tuyến không? nếu không, hãy xem xét lưu vào định dạng csv – ULysses
Bạn có cần xuất sang tệp Excel hoặc CSV có thể chấp nhận không? – Rob
Loại này phụ thuộc vào T :) – SWeko