Folloiwng 是 ASP.Net MVC 中的 ClosedXML 方法。它将帮助下载文件为xlsx
生成ExcelInvoiceController
private void GenerateExcelInvoiceController(ClosedXML.Excel.XLWorkbook workBook, string formtFileName)
{
string currentTime = DateTime.Now.ToString();
string headerString = formtFileName.Replace("{0}", currentTime);
headerString = headerString.Replace(" ", "");
Response.Clear();
Response.Buffer = true;
Response.ContentType = "application/vnd.openxmlformats-officedocument.spreadsheetml.sheet";
Response.AddHeader("content-disposition", headerString);
using (MemoryStream memoryStream = new MemoryStream())
{
workBook.SaveAs(memoryStream);
memoryStream.WriteTo(Response.OutputStream);
memoryStream.Close();
}
Response.End();
}
ClosedXML.Excel.XLWorkbook GetWorkBook
public static ClosedXML.Excel.XLWorkbook GetWorkBook(DataTable table, string sheetName)
{
ClosedXML.Excel.XLWorkbook workBook = new ClosedXML.Excel.XLWorkbook();
ClosedXML.Excel.IXLWorksheet workSheet = workBook.Worksheets.Add(table, sheetName);
return workBook;
}
POST 的控制器操作
[Authorize]
[HttpPost]
public void PracticeList(BalanceStatementModel modelReceived)
{
List<FinanceEntity> rows = GetRunningBalanceDueForPractice();
DataTable table = new DataTable();
using (var reader = FastMember.ObjectReader.Create(rows, "ItemDescription", "EventDate", "Amount", "RunningBalanceDue"))
{
table.Load(reader);
}
ClosedXML.Excel.XLWorkbook workBook = CommonBusinessMethodHelpers.GetWorkBook(table, "Statement");
string formtFileName = "attachment;filename=\"BalanceStatement-{0}.xlsx\"";
GenerateExcelInvoiceController(workBook, formtFileName);
}
注意:它使用通过 NuGet 获得的 FastMember 库。
参考资料:
Making OpenXML Easy with ClosedXML
Use the library ClosedXml for creating Excel files