48 lines
		
	
	
		
			1.6 KiB
		
	
	
	
		
			C#
		
	
	
			
		
		
	
	
			48 lines
		
	
	
		
			1.6 KiB
		
	
	
	
		
			C#
		
	
	
using IRaCIS.Core.Application.Helper;
 | 
						|
using Microsoft.AspNetCore.Hosting;
 | 
						|
using Microsoft.AspNetCore.Mvc;
 | 
						|
using MiniExcelLibs;
 | 
						|
 | 
						|
namespace IRaCIS.Core.Application.Service;
 | 
						|
 | 
						|
public static class ExcelExportHelper
 | 
						|
{
 | 
						|
    //MiniExcel_Export
 | 
						|
    public static async Task<IActionResult> DataExportAsync(string code, object data, string exportFileNamePrefix, IRepository<CommonDocument> _commonDocumentRepository, IWebHostEnvironment _hostEnvironment)
 | 
						|
    {
 | 
						|
 | 
						|
        var (physicalPath, fileNmae) = await FileStoreHelper.GetCommonDocPhysicalFilePathAsync(_hostEnvironment, _commonDocumentRepository, code);
 | 
						|
 | 
						|
 | 
						|
        //模板路径
 | 
						|
        var tplPath = physicalPath;
 | 
						|
 | 
						|
        #region MiniExcel
 | 
						|
 | 
						|
        var memoryStream = new MemoryStream();
 | 
						|
 | 
						|
        await MiniExcel.SaveAsByTemplateAsync(memoryStream, tplPath, data);
 | 
						|
 | 
						|
        memoryStream.Seek(0, SeekOrigin.Begin);
 | 
						|
 | 
						|
        return new FileStreamResult(memoryStream, "application/vnd.openxmlformats-officedocument.spreadsheetml.sheet")
 | 
						|
        {
 | 
						|
            FileDownloadName = $"{exportFileNamePrefix}_{fileNmae.Substring(0, fileNmae.LastIndexOf('.'))}_{DateTime.Now.ToString("yyyyMMddHHmmss")}.xlsx"
 | 
						|
        };
 | 
						|
 | 
						|
        #endregion
 | 
						|
 | 
						|
        #region Magicodes  模板规则不一样
 | 
						|
 | 
						|
        ////创建Excel导出对象
 | 
						|
        //IExportFileByTemplate exporter = new ExcelExporter();
 | 
						|
 | 
						|
        ////根据模板导出
 | 
						|
        //var result = await exporter.ExportBytesByTemplate(exportInfo, tplPath);
 | 
						|
 | 
						|
 | 
						|
        //return new XlsxFileResult(bytes: result, fileDownloadName: $"{doc.Name}_{DateTime.Now.ToString("yyyy-MM-dd:hh:mm:ss")}.xlsx");
 | 
						|
        #endregion
 | 
						|
 | 
						|
    }
 | 
						|
} |