通过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

相关推荐
課代表18 分钟前
Excel VBA 词频统计宏
ui·excel··vba·模块·字典
惊鸿醉40 分钟前
Unity C# 中的 反射 小记
unity·c#·游戏引擎
极小狐1 小时前
如何使用极狐GitLab 软件包仓库功能托管 helm chart?
java·linux·服务器·数据库·c#·gitlab·maven
Yuze_Neko1 小时前
C#异步Task,await,async和Unity同步协程
开发语言·unity·c#
冰茶_2 小时前
WPF之集合绑定深入
microsoft·微软·c#·wpf·mvvm·数据绑定·布局系统
驾驭人生4 小时前
封装 RabbitMQ 消息代理交互的功能
c#
LAM LAB4 小时前
【WPS】怎么解决“word的复制表格”粘贴到“excel的单元格”变多行单元格的问题
word·excel·wps
阿月浑子20215 小时前
[C#]Task.Run()和Task.Factory.StartNew()对比(腾讯元宝)
开发语言·c#
Eiceblue5 小时前
如何通过C# 获取Excel单元格的数据类型
开发语言·visualstudio·c#·excel
FAREWELL000759 小时前
Unity基础学习(十)Camera组件
学习·unity·c#·游戏引擎