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

相关推荐
Lv11770085 小时前
Visual Studio中的多态
ide·笔记·c#·visual studio
wuguan_6 小时前
C#:多态函数重载、态符号重载、抽象、虚方法
开发语言·c#
我不是程序猿儿6 小时前
【C#】ScottPlot的Refresh()
开发语言·c#
工程师0076 小时前
C# 基于 HSL 与基恩士 PLC 通信
c#·mc协议·基恩士plc
啊哈哈哈哈啊有6 小时前
导出树形结构,excel
java·windows·excel
张人玉10 小时前
c# DataSet 类
数据库·c#·dataset
秦苒&10 小时前
【C语言】详解数据类型和变量(一):数据类型介绍、 signed和unsigned、数据类型的取值范围、变量、强制类型转换
c语言·开发语言·c++·c#
一个帅气昵称啊10 小时前
.Net通过EFCore和仓储模式实现统一数据权限管控并且相关权限配置动态生成
.net·efcore·仓储模式
c#上位机10 小时前
C#异步编程之async、await
开发语言·c#
郑州光合科技余经理10 小时前
实战分享:如何构建东南亚高并发跑腿配送系统
java·开发语言·javascript·spring cloud·uni-app·c#·php