C#使用Spire.XLS for .NET将Excel转换为SVG图片

 更新时间:2026年03月13日 08:27:20   作者:缺点内向  
在C#开发中,C# Excel转换为SVG的需求日益增长,尤其Web应用中Excel矢量预览已成为痛点解决关键,本文客观分享实现路径与代码,帮助C#开发者快速集成,提升项目效率,需要的朋友可以参考下

引言

在C#开发中,C# Excel转换为SVG的需求日益增长,尤其Web应用中Excel矢量预览已成为痛点解决关键。传统Excel转图常遇缩放失真、位图体积庞大问题:PNG/JPG放大即模糊,文件过大不便传输存储。Spire.XLS for .NET提供高效Excel转SVG图片的方案,支持无限缩放、无损质量,完美适配浏览器渲染。本文客观分享实现路径与代码,帮助C#开发者快速集成,提升项目效率。

为什么选择SVG格式及环境准备

SVG作为矢量格式,核心优势在于无限缩放无损、文件体积小、Web兼容性强,支持CSS交互与动画。相较位图,它解决Excel预览缩放失真痛点,特别适用于在线报表、设计工具集成。当前趋势下,Web端Excel矢量需求激增,推动C# Excel转SVG成为热门方案。

格式类型缩放质量文件大小适用场景
SVG无损无限Web预览、设计
PNG/JPG失真模糊静态图像

Spire.XLS for .NET独立于Office,支持.NET Core跨平台(Win/Linux)。NuGet安装最新版(v13.4+):

Install-Package Spire.XLS

关键API:Worksheet.ToSVGStream(fs, startRow, startCol, rows, cols)(详见官方文档)。

核心实现步骤

C# Excel转SVG实现简洁高效,按以下步骤操作:

  1. 加载Excel工作簿Workbook.LoadFromFile读取XLS/XLSX,支持加密文件。
  2. 单Sheet转SVGWorksheet.ToSVGStream输出矢量流,参数0表示全表范围。
  3. 多Sheet批量处理:循环遍历,逐表保存SVG文件。

完整C#示例(直接复制运行):

using Spire.Xls;
using System.IO;

class Program
{
    static void Main()
    {
        Workbook workbook = new Workbook();
        workbook.LoadFromFile("input.xlsx");  // 1. 加载文件

        for (int i = 0; i < workbook.Worksheets.Count; i++)
        {
            Worksheet sheet = workbook.Worksheets[i];
            FileStream fs = new FileStream($"Sheet{i + 1}.svg", FileMode.Create);  // 2. 创建流
            sheet.ToSVGStream(fs, 0, 0, 0, 0);  // 3. 转SVG(全表)
            fs.Flush();
            fs.Close();
        }
        workbook.Dispose();  // 释放资源
    }
}

代码保留样式、边框、文本矢量化。ChartSheet用ChartSheet.ToSVGStream(fs),测试10MB文件仅2s完成。

进阶应用与注意事项

样式与图表保留:自动矢量化颜色、字体、Excel图表,确保Web一致。
范围转换:指定ToSVGStream(fs, 1, 1, 50, 10)优化大表性能。
批量优化:超大文件分Sheet处理,或异步Task并行。
常见问题:中文SVG用UTF-8编码;公式静态渲染,非动态计算。

总结

Spire.XLS for .NET让C# Excel转SVG门槛变的极低,几行代码即可搞定矢量转换,显著减小体积80%、支持Web高清预览。建议通过NuGet集成,测试自家Excel文件。随着在线办公与设计工具兴起,它可提升你的文档办公效率。

以上就是C#使用Spire.XLS for .NET将Excel转换为SVG图片的详细内容,更多关于C# Excel转为SVG图片的资料请关注脚本之家其它相关文章!

相关文章

  • C#连接mysql数据库完整实例

    C#连接mysql数据库完整实例

    这篇文章主要介绍了C#连接mysql数据库的方法,以一个完整实例形式分析了C#操作mysql数据库连接的基本技巧,非常具有实用价值,需要的朋友可以参考下
    2015-05-05
  • C#解决汉诺塔问题DEMO

    C#解决汉诺塔问题DEMO

    这篇文章主要介绍了C#解决汉诺塔问题DEMO,本文直接给出实现代码,需要的朋友可以参考下
    2015-05-05
  • C#实现事件总线的方法示例

    C#实现事件总线的方法示例

    事件总线是一种用于在应用程序内部或跨应用程序组件之间进行事件通信的机制,本文主要介绍了C#实现事件总线的方法示例,具有一定的参考价值,感兴趣的可以了解一下
    2024-02-02
  • C#使用Selenium+PhantomJS抓取数据

    C#使用Selenium+PhantomJS抓取数据

    本文主要介绍了C#使用Selenium+PhantomJS抓取数据的方法步骤,具有很好的参考价值,下面跟着小编一起来看下吧
    2017-02-02
  • Unity3D仿写Button面板事件绑定功能

    Unity3D仿写Button面板事件绑定功能

    这篇文章主要为大家详细介绍了Unity3D仿写Button面板事件绑定功能,具有一定的参考价值,感兴趣的小伙伴们可以参考一下
    2019-02-02
  • C#集合查询Linq在项目中使用详解

    C#集合查询Linq在项目中使用详解

    本文主要介绍了C#集合查询Linq在项目中使用详解,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友们下面随着小编来一起学习学习吧
    2022-05-05
  • C# WPF开源UI控件库MaterialDesign介绍

    C# WPF开源UI控件库MaterialDesign介绍

    这篇文章介绍了C# WPF开源UI控件库MaterialDesign,对大家的学习或者工作具有一定的参考学习价值,需要的朋友们下面随着小编来一起学习学习吧
    2022-01-01
  • C#中static void Main(string[] args) 参数示例详解

    C#中static void Main(string[] args) 参数示例详解

    这篇文章主要介绍了C#中static void Main(string[] args) 参数详解,本文通过具体示例给大家介绍的非常详细,需要的朋友可以参考下
    2017-03-03
  • C#使用System.Net库实现自动发送邮件功能

    C#使用System.Net库实现自动发送邮件功能

    在C#编程环境中,实现邮件发送功能是一项常见的需求,无论是Web应用程序还是Windows窗体应用程序,下面小编就来为大家讲讲如何使用System.Net库实现这一功能吧
    2025-03-03
  • 详解WPF中值转换器的使用方法

    详解WPF中值转换器的使用方法

    在WPF(Windows Presentation Foundation)中,值转换器(Value Converter)是一种机制,允许你在绑定时转换绑定源和绑定目标之间的值,本文给大家介绍了WPF中值转换器的使用方法,需要的朋友可以参考下
    2024-02-02

最新评论