我想導出數據列表爲Excel格式,但我找不到任何第三方庫或任何參考。我在.net核心上構建我的項目。任何一位專家在這裏建議任何解決方案。謝謝使用Asp.net核心導出DataList到Excel
2
A
回答
3
如果交叉平臺(Windows,Linux,Mac)是你的一個主要問題,那麼你必須使用一些「預發佈」的東西。
.NET Core支持OpenXML有一個問題,它可以用來創建Open XML Office文檔(例如XLSX)(https://github.com/OfficeDev/Open-XML-SDK/issues/65)。準備工作之前必須完成一些工作。
有人將你的需求移植到.NET Core上,並在GitHub上發佈他的項目(https://github.com/xrkolovos/Open-XML-SDK-for-NET-Platform-Standard)。我沒有嘗試過,但可能值得嘗試。
如果您的應用程序僅在Windows上運行,那麼您可以在完整的.NET Framework(具有用於創建Excel的衆所周知的第三方庫)之上構建ASP.NET Core項目。
1
我已經發布這個問題差不多7個月前,我找到了解決方案,所以我想分享它。
上project.json
上控制器添加"PdfRpt.Core": "1.0.0-*"
[HttpGet("exportexcell")]
public async Task<FileContentResult> ExportExcel()
{
var loggedUser = await GetCurrentUserAsync();
var users = _userManager.Users.Select(u => new UserListVM
{
Id = u.Id,
Name = u.UserName,
Email = u.Email
}).ToList();
if (users == null) return null;
//column Header name
var columnsHeader = new List<string>{
"S/N",
"User Name",
"Email"
};
var filecontent = ExportExcell(users, columnsHeader, "Users");
return File(filecontent, "application/ms-excel", "users.xlsx"); ;
}
helper方法
private static byte[] ExportExcell(List<UserListVM> data, List<string> columns, string heading)
{
byte[] result = null;
using (ExcelPackage package = new ExcelPackage())
{
// add a new worksheet to the empty workbook
var worksheet = package.Workbook.Worksheets.Add(heading);
using (var cells = worksheet.Cells[1, 1, 1, 7])
{
cells.Style.Font.Bold = true;
cells.Style.Fill.PatternType = ExcelFillStyle.Solid;
cells.Style.Fill.BackgroundColor.SetColor(Color.Green);
}
//First add the headers
for (int i = 0; i < columns.Count(); i++)
{
worksheet.Cells[1, i + 1].Value = columns[i];
}
//Add values
var j = 2;
var count = 1;
foreach (var item in data)
{
worksheet.Cells["A" + j].Value = count;
worksheet.Cells["B" + j].Value = item.Name;
worksheet.Cells["C" + j].Value = item.Email;
worksheet.Cells["D" + j].Value = item.RoleNam
j++;
count++;
}
result = package.GetAsByteArray();
}
return result;
}
//它的工作對我罰款..它可以幫助你。
你可以找到演示here
1
首先,THX爲您的工作。它幫助我走出現在:d
其次,你有一個錯誤在你的代碼演示
//First add the headers
for (int i = 0; i < dataList.Count; i++)
{
worksheet.Cells[1, i + 1].Value = dataList[i];
}
更換DataList控件與columnsHeader(您存儲的表頭)。像這樣:
//First add the headers
for (int i = 0; i < columnsHeader.Count; i++)
{
worksheet.Cells[1, i + 1].Value = columnsHeader[i];
}
乾杯!
相關問題
- 1. Asp.net核心導入Excel文件FileNotFoundException
- 2. asp.net導出到Excel
- 3. 使用SqlBulkCopy與ASP.Net核心導入一個.CSV核心
- 4. 如何使用Primefaces將dataList導出到Excel和PDF
- 5. Asp.net(核心) - 導航到多個網址
- 6. 使用反射與類庫導出爲nuget asp.net核心
- 7. 將核心數據信息導出到Excel工作表
- 8. asp.net導出到Excel UTF-8
- 9. ASP.Net網格導出到Excel
- 10. ASP.net MVC導出到Excel
- 11. 使用FluentScheduler - ASP.NET核心MVC
- 12. ASP.NET Excel導出
- 13. Asp.Net核心 - 導入/導出引擎(.csv和xls格式)
- 14. 使用SAS導出到Excel
- 15. 導出到Excel使用Response.TransmitFile()
- 16. 使用Lightswitch導出到Excel
- 17. VB asp.net到.net核心
- 18. 遷移到ASP.NET核心
- 19. 在asp.net核心
- 20. ASP.Net核心maxUrlLength
- 21. asp.net核心defaultProxy
- 22. ASP.NET核心0x80004005
- 23. 在Asp.net核心
- 24. 與ASP.Net核心
- 25. 在Asp.net核心
- 26. DataList to PDF導出
- 27. 使用mvc核心和剃鬚刀將視圖導出爲Excel或PDF
- 28. Webjob導致ASP.NET核心性能問題
- 29. 遷移從asp.net到asp.net核心
- 30. 使用asp.net核心啓用角路由
感謝您的回覆,但在我的工作項目中使用.net核心平臺,其中我必須添加導出excel功能,但我無法獲得任何解決方案。 – Bharat