使用 C# 将 Excel 转换成高质量 JPG

张开发
2026/4/10 17:16:41 15 分钟阅读

分享文章

使用 C# 将 Excel 转换成高质量 JPG
在日常办公开发中经常遇到需要将 Excel 表格转换为图片的需求。无论是生成报表预览、数据展示还是防止表格格式错乱将 Excel 转换为 JPG 都是一种实用的解决方案。今天分享如何使用 Spire.XLS 库配合 C# 代码实现高质量 Excel 转 JPG。为什么需要高质量转换直接截图或使用普通转换方式往往会导致图片模糊、文字不清晰。特别是在打印或放大查看时低分辨率的图片根本无法满足需求。通过设置 300 DPI 的分辨率可以确保生成的 JPG 图片清晰度达到印刷级别。实现步骤首先需要安装 Spire.XLS 库通过 NuGet 包管理器搜索Spire.XLS即可安装。核心代码分为三个部分加载 Excel 文件使用Workbook类加载指定工作表转换为 EMF 流将指定区域导出为 EMF 格式的内存流调整分辨率并保存通过ResetResolution方法将分辨率设置为 300 DPI最终保存为 JPG完整代码using Spire.Xls; using System.Drawing; using System.Drawing.Imaging; using System.IO; namespace Convert { class Program { static void Main(string[] args) { Workbook workbook new Workbook(); workbook.LoadFromFile(Input.xlsx, ExcelVersion.Version2013); Worksheet worksheet workbook.Worksheets[0]; using (MemoryStream ms new MemoryStream()) { worksheet.ToEMFStream(ms, 1, 1, worksheet.LastRow, worksheet.LastColumn); Image image Image.FromStream(ms); Bitmap images ResetResolution(image as Metafile, 300); images.Save(Result.jpg, ImageFormat.Jpeg); } } private static Bitmap ResetResolution(Metafile mf, float resolution) { int width (int)(mf.Width * resolution / mf.HorizontalResolution); int height (int)(mf.Height * resolution / mf.VerticalResolution); Bitmap bmp new Bitmap(width, height); bmp.SetResolution(resolution, resolution); Graphics g Graphics.FromImage(bmp); g.DrawImage(mf, 0, 0); g.Dispose(); return bmp; } } }代码要点说明ToEMFStream方法可以将工作表的指定范围导出为 EMF增强型图元文件格式这种矢量格式保证了放大不失真ResetResolution方法接收一个Metafile对象和目标分辨率返回调整后的Bitmap使用MemoryStream可以避免生成临时文件直接在内存中完成转换应用场景报表系统将数据表格生成为图片便于嵌入 Word、PPT 或网页数据展示避免用户因缺少 Excel 软件而无法打开文件归档备份将重要表格转为图片格式长期保存不易变样通过上述方法可以轻松将 Excel 表格转换为高清 JPG 图片满足大多数办公场景的需求。如果需要批量转换只需遍历工作簿中的多个工作表即可。

更多文章