公司动态

SpreadCheetah 高级功能大全:图片、批注、合并单元格与数据验证

📅 2026/8/25 9:49:50
SpreadCheetah 高级功能大全:图片、批注、合并单元格与数据验证
SpreadCheetah 高级功能大全图片、批注、合并单元格与数据验证【免费下载链接】spreadcheetahSpreadCheetah is a high-performance .NET library for generating spreadsheet (Microsoft Excel XLSX) files.项目地址: https://gitcode.com/gh_mirrors/sp/spreadcheetahSpreadCheetah 是一款高性能 .NET 库专为流式生成 ExcelXLSX电子表格而设计。本文带你快速上手它的四大高级功能嵌入图片、单元格批注、合并单元格与数据验证——无需安装 Excel几行代码即可产出专业的报表文件。 为什么选择 SpreadCheetah纯流式写入从左上到右下逐行生成内存占用极低零 Excel 依赖不依赖任何 Microsoft Excel 组件异步 API 友好写入方法均为异步天然适配高并发服务广泛兼容.NET Framework 到 .NET 10支持 Trimmable 与 NativeAOT官方基准测试10 万行 × 10 列字符串.NET 10库平均耗时内存分配SpreadCheetah32.86 ms15.43 KBOpen XMLDOM 方式922.37 ms~734 MBClosedXML1486.15 ms~1.43 GB速度快 10 倍以上内存不到其千分之一——生成大报表时的终极性能之选。 一键安装步骤一行命令即可开始dotnet add package SpreadCheetah️ 功能一在电子表格中嵌入图片图片分两步走先用EmbedImageAsync把 PNG 嵌入工作簿必须在第一个工作表启动之前再用AddImage放到当前工作表的指定位置using var spreadsheet await Spreadsheet.CreateNewAsync(stream); // ① 先嵌入图片仅支持 PNG同一张图可跨表复用 var logo await spreadsheet.EmbedImageAsync(pngStream); await spreadsheet.StartWorksheetAsync(Sheet 1); // ② 用 ImageCanvas 指定位置与大小 spreadsheet.AddImage(ImageCanvas.OriginalSize(D4), logo);ImageCanvas提供 5 种摆放方式覆盖绝大多数排版需求工厂方法效果OriginalSize(A1)左上角位于 A1按原始大小显示Dimensions(A1, 300, 200)按指定像素宽高显示Scaled(A1, 0.5f)按比例缩放0.0 – 1000FillCell(A2)撑满单个单元格随单元格移动/缩放FillCells(A1, C3)填满指定单元格区域同一张嵌入图片可反复用于多个单元格、多个工作表不会重复占用文件空间。下面这张 PNG 正是项目测试中嵌入电子表格所用的示例图片摆放逻辑定义在SpreadCheetah/Images/ImageCanvas.cs像素级偏移可通过SpreadCheetah/Images/ImageOptions.cs配置。 功能二添加单元格批注给单元格加便签一行代码搞定spreadsheet.AddNote(B2, 该列数值为 2025 年 Q3 汇总请核对);批注为纯文本支持多行与空格保留。工作表结束时调用FinishAsync库会自动把批注写入 comments 与 VML 绘图部件见SpreadCheetah/MetadataXml/CommentsXml.cs无需触碰任何底层 XML。 功能三合并单元格合并是报表标题的刚需A1 引用风格如A1:E5直接可用// 先写入单元格内容 await spreadsheet.AddRowAsync([2025 年度销售报表, , , ]); // 再把 A1:D1 合并 spreadsheet.MergeCells(A1:D1);⚠️先写值、再合并合并后只保留左上角单元格的内容区域中其余内容会被忽略。️ 功能四数据验证下拉列表与输入校验AddDataValidation可为单个单元格或整片区域如B2:B100添加校验每个工作表最多 65534 条// 下拉列表只能选择 是/否 spreadsheet.AddDataValidation(C2:C100, DataValidation.ListValues([是, 否])); // 数值范围1-100并配置错误提示 var age DataValidation.IntegerBetween(1, 100) { ErrorTitle 输入有误, ErrorMessage 年龄必须在 1 到 100 之间, ErrorType ValidationErrorType.Warning }; spreadsheet.AddDataValidation(D2:D100, age);常用工厂方法一览ListValues/ListValuesFromCells下拉列表可引用同表或跨表的单元格区域DecimalBetween/IntegerBetween/DateTimeBetween/TextLengthBetween范围校验可配置ErrorTitle、ErrorMessage、InputTitle、InputMessageErrorType支持阻止、警告、信息三个提示级别注意下拉项不能含逗号所有选项总长 ≤ 255 字符核心定义在SpreadCheetah/Validations/DataValidation.cs错误级别枚举见SpreadCheetah/Validations/ValidationErrorType.cs。 避坑小贴士顺序很重要EmbedImageAsync必须在StartWorksheetAsync之前调用仅支持 PNG嵌入图片目前只认 PNG 格式引用风格单元格与区域一律使用 A1 风格A1、A1:E5先写后并合并单元格前先把内容写进左上角单元格流式单向SpreadCheetah 只能向前写不能回头修改已写行——规划好布局再写入 核心源码路径速查功能源码位置总入口嵌入图片 / 批注 / 合并 / 校验SpreadCheetah/Spreadsheet.cs图片画布与摆放方式SpreadCheetah/Images/ImageCanvas.cs工作表内部状态图片、批注、合并集合SpreadCheetah/Worksheet.cs数据验证定义SpreadCheetah/Validations/DataValidation.cs批注 XML 生成SpreadCheetah/MetadataXml/CommentsXml.cs图片 XML 生成SpreadCheetah/MetadataXml/DrawingXml.cs数据验证 XML 生成SpreadCheetah/MetadataXml/Worksheets/DataValidationXml.cs掌握以上四件套SpreadCheetah 就能覆盖绝大多数报表场景——高性能、低内存、零 Excel 依赖让 .NET 后端轻松输出带图片、批注与交互校验的专业 Excel 文件。【免费下载链接】spreadcheetahSpreadCheetah is a high-performance .NET library for generating spreadsheet (Microsoft Excel XLSX) files.项目地址: https://gitcode.com/gh_mirrors/sp/spreadcheetah创作声明:本文部分内容由AI辅助生成(AIGC),仅供参考