.net core在linux导出excel,System.Drawing.Common is not supported on this platform

devtools/2024/12/22 12:54:55/

使用框架 .NET7
导出组件 Aspose.Cells for .NET 5.3.1

asp.net core mvc 如果使用Aspose.Cells导出excel时,报错
System.Drawing.Common is not supported on this platform

平台特定实现:
对于Windows平台,System.Drawing.Common 通常是可以正常工作的。
对于非Windows平台,你可能需要寻找替代方案,如使用 SkiaSharp、ImageSharp 或其他跨平台的图形库。
System.Drawing.Common 是一个提供基本图形功能的库,但它并不是在所有平台上都可用。特别是在非Windows平台上(如Linux和macOS),由于底层图形系统的差异,直接使用 System.Drawing.Common 可能会遇到问题

推荐使用不依赖操作系统底层环境的组件来导出excel,这样linux中就不用安装图像组件依赖了,比如libSkiaSharp,这里推荐用 MiniExcel 来导出excel,支持Linux,直接在nuget搜索安装MiniExcel

MiniExcel__13">MiniExcel 组件介绍

MiniExcel 简单高效,避免了 OOM 的 .NET 处理 Excel 工具。
目前大多数流行的框架都需要将所有数据加载到内存中以方便操作,但这会引起内存消耗问题。MiniExcel 尝试使用流中的算法将原来的 1000 MB 占用减少到几 MB,以避免 OOM(内存不足)。

特征

  • 低内存消耗,避免 OOM(内存不足)和全量 GC
  • 支持每行数据的实时操作
  • 支持 LINQ 延迟执行,可以做低消耗、快速分页等复杂查询
  • 轻量级,未安装 Microsoft Office,无 COM+,DLL 大小小于 150KB
  • 简单的 API 样式来读/写/填充 excel
    在这里插入图片描述

MiniExcel_excel_25">MiniExcel 导出excel参考代码:

 public static string ExportExcelFile(Object list, string fileName){//检查导出目录是否在 string dir = Path.Combine(AppDomain.CurrentDomain.BaseDirectory, "export");if (!System.IO.Directory.Exists(dir)){System.IO.Directory.CreateDirectory(dir);}string filePath = Path.Combine(dir, fileName);string url = Path.Combine("export", fileName);//测试数据var value = new[] {new { id="12",name="武松",createTime="2024-12-17 16:35:41",point=284.7},new { id="23",name="李斯",createTime="2024-12-11 16:35:41",point=184.5},new { id="31",name="欧阳楠",createTime="2024-10-14 16:35:41",point=384.1},new { id="14",name="范仲淹",createTime="2024-05-24 16:35:41",point=291.2}};var config = new OpenXmlConfiguration{/** new DynamicExcelColumn("id"){Name="主键" } , Name设置列中文名称;new DynamicExcelColumn("id"){Name="主键" ,Ignore=true} , Ignore表示此列不导出;Index设置所在列下标(数字),也可以控制显示顺序; *///配置列名DynamicColumns = new DynamicExcelColumn[] {new DynamicExcelColumn("id"){Name="主键" },new DynamicExcelColumn("name"){ Name="姓名",Width=20},new DynamicExcelColumn("createTime"){Name="创建时间", Format="yyyy-MM-dd",Width=55},new DynamicExcelColumn("point"){ Name="得分"},}};MiniExcel.SaveAs(filePath, value, configuration: config);//删除已经过期的文件Action<string> delFileAc = (fileDir) =>{try{var files = System.IO.Directory.GetFiles(fileDir);if (files == null || files.Length == 0) return;foreach (var filePath in files){if (File.Exists(filePath)){var fileInfo = new FileInfo(filePath);if ((DateTime.Now - fileInfo.LastWriteTime).TotalHours > 48){File.Delete(filePath);Console.WriteLine("成功删除导出文件=" + filePath);}}}}catch (Exception){}};delFileAc(dir);return url;}

导出文件效果

在这里插入图片描述


http://www.ppmy.cn/devtools/144377.html

相关文章

【mac 终端美化】oh my zsh

快捷的mac终端美化方法。 以下是效果图&#xff0c;比较朴素&#xff0c;但是相比默认方案会好看一些&#xff0c;也能明显查看输入的命令&#xff0c;不会和输出混在一起。 下载主题 访问网址&#xff1a;https://iterm2colorschemes.com/&#xff0c;下载网页的压缩包并解…

Qt调用adb对嵌入式设备的配置文件进行修改,写入多行内容

之前文章写过Qt调用adb命令来处理嵌入式设备的文件。 Qt开发技巧&#xff08;二十五&#xff09;列表窗体的纵向对齐&#xff0c;标签的伙伴部件设置&#xff0c;标签上的超链接操作&#xff0c;子窗体弹出时的坐标问题&#xff0c;Qt在PC端操作设备的方式&#xff0c;Qt用ADB操…

单北斗+鸿蒙系统+国产芯片,遨游防爆手机自主可控“三保险”

在当今全球科技竞争日益激烈的背景下&#xff0c;技术自主可控的重要性愈发凸显。它不仅关乎国家安全&#xff0c;更是推动产业升级和经济发展的关键。特别是在一些特殊领域&#xff0c;如防爆通信&#xff0c;自主可控的技术更是不可或缺。遨游通讯推出了一款融合了单北斗、鸿…

SpringBoot项目的创建方式(五种)

目录 1.在idea中通过aliyun创建SpringBoot项目 2、在idea中通过spring官网创建SpringBoot项目 3.通过spring官网下载再用idea打开 4.通过阿里云下载再用idea打开 5.通过mavenjava项目改为springboot项目 ​编辑 6.测试springboot 1.在idea中通过aliyun创建SpringBoot项目…

MySQL高可用

MySQL主从复制的过程是怎么样的 分为3个阶段&#xff1a; 写入binlog&#xff1a;主库修改数据后&#xff0c;会写入binlog日志&#xff0c;从库连接到主库后&#xff0c;主库会创建一个log dump线程&#xff0c;用于发送bin log的内容同步binlog&#xff1a;从库会专门创建一…

Flink CDC 生产环境常用参数总结

Flink CDC 生产环境常用参数总结 1.参数 1. 基本连接参数 这些参数用于定义如何连接到数据库&#xff0c;是配置的必需项。 参数名称说明示例connector数据库连接器类型&#xff0c;常用 mysql-cdc。connector mysql-cdchostname数据库主机名或 IP 地址。hostname 192.16…

理解支持向量机

支持向量机属于机器学习 支持向量机&#xff08;Support Vector Machine&#xff0c;SVM&#xff09;是一种典型的机器学习算法&#xff0c;属于监督学习范畴。它主要用于分类问题&#xff0c;也可以用于回归问题。在机器学习的众多算法中&#xff0c;SVM以其在小样本、高维空间…

[每周一更]-(第128期):CentOS源码安装PostgreSQL

文章目录 **1. 环境准备****安装必要的依赖****2. 下载 PostgreSQL 源码****3. 编译和安装****编译 PostgreSQL****4. 初始化数据库****5. 启动和管理 PostgreSQL 服务****手动启动 PostgreSQL****将 PostgreSQL 添加到环境变量****6. 创建用户和数据库****7. 配置远程访问**修…