通过C# 将Excel表格转换为图片(JPG/ PNG)

Excel 表格可能会因为不同设备、不同软件版本或字体缺失等问题,导致格式错乱或数据显示异常。转换为图片后,能确保数据的排版、格式和外观始终保持一致,无论在何种设备或平台上查看,都能呈现出固定的样式,避免了因环境差异而产生的显示问题。本文将介绍如何在.NET 程序中通过C# 将Excel转换为图片 (JPG、PNG等)

文章目录

    • [通过C# 转换Excel工作表到图片](# 转换Excel工作表到图片)
    • [通过C# 转换指定单元格区域到图片](# 转换指定单元格区域到图片)

本文需要用到一个免费国产库 Free Spire.XLS for .NET (有页数限制)。该库可以直接通过在Visual Studio > NuGet程序包管理器中搜索 "FreeSpire.XLS" 来安装。也可以通过该链接下载产品包后手动添加引用。

通过C# 转换Excel工作表到图片

免费Spire.XLS库提供的 SaveToImage() 方法可将某个指定的工作表转换为JPG或PNG图片。步骤参考:

  1. 使用 Workbook 类的 LoadFromFile() 方法加载 Excel 文档。
  2. 通过 Workbook 类的 Worksheets[] 属性获取文档中的指定工作表。
  3. 使用 Worksheet 类的 SaveToImage() 方法将工作表保存为指定格式的图片。

C#代码:

csharp 复制代码
using Spire.Xls;

namespace ExcelToImage
{
    class Program
    {
        static void Main(string[] args)
        {
            // 加载Excel文档
            Workbook workbook = new Workbook();
            workbook.LoadFromFile(@"E:\PythonExcel\计划.xlsx");

            // 获取第一张工作表
            Worksheet sheet = workbook.Worksheets[0];

            // 将工作表保存为图片
            sheet.SaveToImage("Excel转图片.jpg");
        }
    }
}

转换结果:

通过C# 转换指定单元格区域到图片

要实现该功能,可以先使用 Worksheet.ToImage(int firstRow, int firstColumn, int lastRow, int lastColumn) 方法一个指定的单元格区域转换为 Image 对象,然后再使用 Image.Save() 方法将该对象保存为特定图片格式。

代码如下:

csharp 复制代码
using Spire.Xls;
using System.Drawing.Imaging;

namespace ExcelToImage
{
    class Program
    {
        static void Main(string[] args)
        {
            // 加载Excel文档
            Workbook workbook = new Workbook();
            workbook.LoadFromFile(@"E:\PythonExcel\计划.xlsx");

            // 获取第一张工作表
            Worksheet sheet = workbook.Worksheets[0];

            // 指定单元格区域并将其保存为特定图像格式
            sheet.ToImage(2, 2, 5, 6).Save("单元格区域转图片.png", ImageFormat.Png);
        }
    }
}

如需将Excel表格转为其他格式,如Excel转PDFExcel转HTMLExcel转CVS等,或者该免费库支持的其他Excel操作功能,可以查看以下教程:

https://www.e-iceblue.cn/spirexls/spire-xls-for-net-program-guide-content.html

相关推荐
加号32 小时前
【C#】 串口通信技术深度解析及实现
开发语言·c#
魏杨杨2 小时前
一个程序员眼中的 AI 核心概念,讲透 LLM 、Agent 、MCP 、Skill 、RAG...
ai·.net·agent·claude code
无风听海3 小时前
C# 隐式转换深度解析
java·开发语言·c#
LateFrames4 小时前
520 - 如何说晚安 (WPF)
c#·wpf·浪漫·ui体验
魔法阵维护师4 小时前
从零开发游戏需要学习的c#模块,第十四章(保存和加载)
学习·游戏·c#
Xin_ye100868 小时前
C# 零基础到精通教程 - 第十一章:LINQ——语言集成查询
开发语言·c#
Xin_ye100868 小时前
C# 零基础到精通教程 - 第十章:集合与泛型——高效管理数据
开发语言·c#
魔法阵维护师10 小时前
从零开发游戏需要学习的c#模块,第十一章(rpg小游戏入门,上篇,地图与移动)
学习·游戏·c#
雪豹阿伟10 小时前
8.C# —— 随机数、DateTime时间、字符串
c#·上位机
天下无敌笨笨熊10 小时前
C#常用三方库使用心得
开发语言·c#