当前位置: 首页 > article >正文

国产化Excel处理组件Spire.XLS教程:如何使用 C# 将 Excel(XLS 或 XLSX)文件转换为 PDF

C# .NET Excel XLS 或 XLSX 文件转 PDF

Excel 是常见的数据处理与呈现工具,但直接共享 Excel 文件可能面临格式错乱、兼容性不足或数据泄露的风险。为了保证文档在不同平台和终端上的稳定展示,开发者常常需要将 Excel 文件转换为 PDF 格式。

本文将详细介绍如何使用 C#.NET Excel 库——Spire.XLS for .NET 高效地将 Excel 文件转换为 PDF。内容涵盖基础转换示例和自定义转换设置,包括如何导出指定工作表或单元格区域、自定义页面设置、为输出 PDF 添加密码保护、导出符合 PDF/A 标准的文件等。

Spire.XLS for.NET下载 

为什么要将 Excel 转换为 PDF

将 Excel 文件转换为 PDF 具有以下显著优势:

  • 保留原始布局和格式:PDF 能完整保留 Excel 文件的结构与样式,确保在不同设备上显示一致。
  • 跨平台兼容性强:PDF 可在任何系统或设备上打开,无需安装 Excel 或其他电子表格软件。
  • 更高的文档安全性:PDF 支持加密、数字签名和访问权限限制,能有效防止文件被未授权查看、复制或编辑。

安装C# .NET Excel 转 PDF 库

Spire.XLS for .NET 是一款功能强大的 Excel 处理库,支持在不依赖 Microsoft Office 的前提下将 Excel 文件直接转换为 PDF。该库不仅能够高精度地将 Excel 内容转换为 PDF,保持原有格式和样式的一致性,还支持对转换过程进行灵活自定义,以满足不同场景下的排版和安全性等多样化需求。

安装 Spire.XLS for .NET

在开始转换之前,请先通过以下任一方式安装 Spire.XLS:

方式一:通过 NuGet 安装(推荐)

Install-Package Spire.XLS

方式二:手动添加 DLL 到项目中

  • 下载 Spire.XLS 产品包并解压。
  • 在 Visual Studio 中,右键点击“引用” > “添加引用” > “浏览”,选择合适目标框架的 Spire.Xls.dll进行添加。

using Spire.Xls;namespace ExcelToPdf
{internal class Program{static void Main(string[] args){// 创建 Workbook 对象Workbook workbook = new Workbook();// 加载 Excel 文件workbook.LoadFromFile("C:\\Users\\Administrator\\Desktop\\test.xlsx");// 将 Excel 文件保存为 PDF 格式workbook.SaveToFile("WorkbookToPDF.pdf", FileFormat.PDF);// 释放资源workbook.Dispose();}}
}

Excel 转 PDF 基础示例

使用 Spire.XLS 将 Excel 文件转换为 PDF 十分简便,只需几行代码。下面的示例展示了如何加载 Excel 文件并直接保存为 PDF,适用于快速转换且无需自定义设置的场景。

C# Excel 转 PDF

Excel 转 PDF 自定义设置

Spire.XLS for .NET 还为开发者提供了丰富的自定义转换选项,以满足不同场景的需求。这些选项包括:

  • 导出特定工作表或单元格区域为PDF
  • 导出时将工作表内容适配到一页
  • 调整工作表页面设置以自定义PDF输出效果
  • 为 输出PDF 设置密码
  • 导出符合 PDF/A 标准的文件

导出特定工作表或单元格区域为 PDF

在实际工作中,有时并不需要导出整个 Excel 工作簿,而只需将某个特定的工作表或者工作表中的部分单元格区域导出为 PDF 文件。Spire.XLS 可以直接将选定工作表导出为PDF,还支持设置打印区域来指定导出的具体单元格范围,从而实现精准导出。

using Spire.Xls;namespace WorksheetOrCellRangeToPdf
{internal class Program{static void Main(string[] args){// 创建 Workbook 对象Workbook workbook = new Workbook();// 加载 Excel 文件workbook.LoadFromFile("C:\\Users\\Administrator\\Desktop\\test.xlsx");// 获取第一个工作表Worksheet sheet = workbook.Worksheets;// 设置打印区域(可选)// sheet.PageSetup.PrintArea = "B1:E6";// 导出工作表为 PDF 文件sheet.SaveToPdf("SheetToPDF.pdf");// 释放资源workbook.Dispose();}}
}

C# 转换 Excel 工作表或单元格区域为 PDF

导出时将工作表内容适配至一页

在打印或共享报告时,常常需要将一个较大工作表的所有内容缩放到一页纸内,保证报告内容一览无遗且排版紧凑。Spire.XLS 支持在导出时将工作表自动缩放至单页,无需手动计算纸张或缩放比例,确保输出的 PDF 页面美观且内容完整。

using Spire.Xls;namespace FitWorksheetToOnePage
{internal class Program{static void Main(string[] args){// 创建 Workbook 对象Workbook workbook = new Workbook();// 加载 Excel 文件workbook.LoadFromFile("C:\\Users\\Administrator\\Desktop\\test.xlsx");// 设置导出时自动缩放工作表内容以适应单页workbook.ConverterSetting.SheetFitToPage = true;// 保存为 PDF 文件workbook.SaveToFile("FitToOnePage.pdf", FileFormat.PDF);// 释放资源workbook.Dispose();}}
}

调整工作表页面设置以自定义 PDF 输出效果

为了适应不同的展示和打印需求,用户常常需要对页面布局进行个性化设置。Spire.XLS 支持通过配置工作表的 PageSetup 属性,灵活调整页边距、纸张大小、页面方向及网格线显示等设置,从而实现对页面布局的精确控制,确保生成的 PDF 文件符合实际使用需求。

using Spire.Xls;namespace AdjustPageSetup
{internal class Program{static void Main(string[] args){// 创建 Workbook 对象Workbook workbook = new Workbook();// 加载 Excel 文件workbook.LoadFromFile("C:\\Users\\Administrator\\Desktop\\test.xlsx");// 获取第一个工作表Worksheet sheet = workbook.Worksheets;// 设置页面方向为横向sheet.PageSetup.Orientation = PageOrientationType.Landscape;// 设置纸张大小为 A4sheet.PageSetup.PaperSize = PaperSizeType.PaperA4;// 设置页边距,单位为英寸sheet.PageSetup.LeftMargin = 0.5;sheet.PageSetup.RightMargin = 0.5;sheet.PageSetup.TopMargin = 0.5;sheet.PageSetup.BottomMargin = 0.5;// 设置打印时显示网格线sheet.PageSetup.IsPrintGridlines = true;// 保存为 PDF 文件sheet.SaveToPdf("CustomPageSetup.pdf");// 释放资源workbook.Dispose();}}
}

为输出 PDF 添加密码保护

针对包含敏感信息的工作表,Spire.XLS 支持为导出的 PDF 文件设置打开密码和权限密码,有效保障文件内容的安全,防止未经授权的访问和修改。

using Spire.Xls;
using Spire.Xls.Pdf.Security;namespace SecurePdfWithPassword
{internal class Program{static void Main(string[] args){// 创建 Workbook 对象Workbook workbook = new Workbook();// 加载 Excel 文件workbook.LoadFromFile("C:\\Users\\Administrator\\Desktop\\test.xlsx");// 设置 PDF 打开密码和权限密码,配置打印权限,使用 128 位秘钥加密workbook.ConverterSetting.PdfSecurity.Encrypt("OpenPassword","PermissionsPassword",PdfPermissionsFlags.Print,PdfEncryptionKeySize.Key128Bit);// 保存为 PDF 文件workbook.SaveToFile("Encrypted.pdf", FileFormat.PDF);// 释放资源workbook.Dispose();}}
}

导出符合 PDF/A 标准的文件

PDF/A 是一种专为长期数字档案保存而设计的 ISO 标准格式,它可以确保文档在未来多年内的可访问性和格式一致性。借助 Spire.XLS,用户可以将 Excel 文件直接转换为符合 PDF/A 标准的 PDF 文档,满足政府、法律及企业档案管理的合规需求。

using Spire.Xls;
using Spire.Xls.Pdf;namespace ExcelToPdfA
{internal class Program{static void Main(string[] args){// 创建 Workbook 对象Workbook workbook = new Workbook();// 加载 Excel 文件workbook.LoadFromFile("C:\\Users\\Administrator\\Desktop\\test.xlsx");// 设置导出 PDF 的合规等级为 PDF/A-1aworkbook.ConverterSetting.PdfConformanceLevel = PdfConformanceLevel.Pdf_A1A;// 保存为 PDF 文件workbook.SaveToFile("Pdf/A-Compliant.pdf", FileFormat.PDF);// 释放资源workbook.Dispose();}}
}

总结

Spire.XLS for .NET 提供了功能强大且灵活的 Excel 转 PDF 解决方案,既能满足快速转换的基础需求,也支持导出指定工作表或单元格区域、调整页面设置、为输出PDF添加密码保护、导出 PDF/A格式文件等高级功能,适用于各种业务场景。通过本指南中的示例,开发者可以轻松将 Excel 到 PDF 的转换功能集成到 .NET 应用程序中。

相关文章:

国产化Excel处理组件Spire.XLS教程:如何使用 C# 将 Excel(XLS 或 XLSX)文件转换为 PDF

Excel 是常见的数据处理与呈现工具,但直接共享 Excel 文件可能面临格式错乱、兼容性不足或数据泄露的风险。为了保证文档在不同平台和终端上的稳定展示,开发者常常需要将 Excel 文件转换为 PDF 格式。 本文将详细介绍如何使用 C#和.NET Excel 库——Spi…...

B3623 枚举排列(递归实现排列型枚举)

B3623 枚举排列(递归实现排列型枚举) - 洛谷 题目描述 今有 n 名学生,要从中选出 k 人排成一列拍照。 请按字典序输出所有可能的排列方式。 输入格式 仅一行,两个正整数 n,k。 输出格式 若干行,每行 k 个正整数…...

vue-08(使用slot进行灵活的组件渲染)

使用slot进行灵活的组件渲染 作用域slot是 Vue.js 中的一种强大机制,它允许父组件自定义子组件内容的呈现。与仅向下传递数据的常规 props 不同,作用域 slot 为父级提供了一个模板,然后子级可以填充数据。这提供了高度的灵活性和可重用性&am…...

Fine Pruned Tiled Light Lists(精细删减的分块光照列表)

概括 在这篇文章, 我将介绍一种Tiled Light 变体,主要针对AMD Graphics Core Next(GCN)架构进行优化,我们的方法应用于游戏 古墓丽影:崛起 中,特别是我们在通过光列表生成和阴影贴图渲染之间交错进行异步计…...

2025-5-29-C++ 学习 字符串(3)

字符串 2025-5-29-C 学习 字符串(3)P3741 小果的键盘题目背景题目描述输入格式输出格式输入输出样例 #1输入 #1输出 #1 输入输出样例 #2输入 #2输出 #2 输入输出样例 #3输入 #3输出 #3 输入输出样例 #4输入 #4输出 #4 输入输出样例 #5输入 #5输出 #5 说明…...

openresty+lua+redis把非正常访问的域名加入黑名单

一、验证lua geoIp2是否缺少依赖 1、执行命令 /usr/local/openresty/bin/opm get anjia0532/lua-resty-maxminddb 执行安装命令报错,缺少Digest/MD5依赖 2、Digest/MD5依赖 yum -y install perl-Digest-MD5 GeoIP2 lua库依赖动态库安装,lua库依赖libmaxminddb实…...

使用Mathematica绘制随机多项式的根

使用ListPlot和NSolve直接绘制: (*返回系数为r和s之间整数的n次随机多项式*) eq[n_, r_, s_] : RandomInteger[{r, s}, {n}] . Array[Power[x, # - 1] &, n] (*返回给定随机多项式的根所对应的笛卡尔坐标*) sol[n_, r_, s_] : {Re[#], Im[#]} & / (x /.…...

IEEE PRMVAI 2025 WS 26:计算机视觉前沿 Workshop 来袭!

宝子们,搞计算机视觉和深度学习的看过来啦!🎉 2025 年 IEEE 第三届模式识别、机器视觉和人工智能国际会议里,Workshop 26 简直是科研宝藏地! 这次 Workshop 聚焦 “Deep learning - based low - level models for comp…...

360浏览器设置主题

设置默认主题: 1.右上角有个皮肤按钮 进来后,右边有个回复默认皮肤按钮。 换成彩色皮肤后,找按钮不太好找了。...

最卸载器——Geek Uninstaller 使用指南

Geek Uninstaller 是一款轻量级的第三方卸载工具,专为 Windows 系统设计,提供比系统默认卸载器更彻底的应用清除能力。它体积小、绿色免安装,使用起来简单直观,但功能却不含糊。 一、为什么要用 Geek Uninstaller? Wi…...

leetcode216.组合总和III:回溯算法中多条件约束下的状态管理

一、题目深度解析与组合约束条件 题目描述 找出所有相加之和为n的k个数的组合,且满足以下条件: 每个数只能使用一次(范围为1到9)所有数字均为唯一的正整数组合中的数字按升序排列 例如,当k3,n9时&#…...

应急响应靶机-web3-知攻善防实验室

题目: 1.攻击者的两个IP地址 2.攻击者隐藏用户名称 3.三个攻击者留下的flag 密码:yj123456 解题: 1.攻击者的两个IP地址 一个可能是远程,D盾,404.php,192.168.75.129 找到远程连接相关的英文,1149代表远程连接成功…...

【基于SpringBoot的图书购买系统】Redis中的数据以分页的形式展示:从配置到前后端交互的完整实现

引言 在当今互联网应用开发中,高性能和高并发已经成为系统设计的核心考量因素。Redis作为一款高性能的内存数据库,以其快速的读写速度、丰富的数据结构和灵活的扩展性,成为解决系统缓存、高并发访问等场景的首选技术之一。在图书管理系统中&…...

Jupyter MCP服务器部署实战:AI模型与Python环境无缝集成教程

Jupyter MCP 服务器是基于模型上下文协议(Model Context Protocol, MCP)的 Jupyter 环境扩展组件,它能够实现大型语言模型与实时编码会话的无缝集成。该服务器通过标准化的协议接口,使 AI 模型能够安全地访问和操作 Jupyter 的核心…...

PMO价值重构:从项目管理“交付机器”到“战略推手”

在数字化转型浪潮中,项目管理办公室(PMO)正经历着前所未有的角色蜕变。传统上,PMO往往被视为项目管理的“交付机器”,专注于项目的按时交付和资源分配。然而,随着企业对战略执行的重视,PMO正逐渐…...

如何成为一名优秀的产品经理

一、 夯实核心基础 深入理解智能驾驶技术栈: 感知: 摄像头、雷达(毫米波、激光雷达)、超声波传感器的工作原理、优缺点、融合策略。了解目标检测、跟踪、SLAM等基础算法概念。 定位: GNSS、IMU、高精地图、轮速计等定…...

[SLAM自救笔记0]:开端

📍背景介绍 本人本硕双非,目前研究方向为4D毫米波雷达SLAM与多传感器融合。主攻技术栈是RIO(Radar-Inertial Odometry)与LIO(LiDAR-Inertial Odometry)。 🎯定位方向说明 虽然研究方向偏RIO&…...

零知开源——STM32F407VET6驱动Flappy Bird游戏教程

简介 本教程使用STM32F407VET6零知增强板驱动3.5寸TFT触摸屏实现经典Flappy Bird游戏。通过触摸屏控制小鸟跳跃,躲避障碍物柱体,挑战最高分。项目涉及STM32底层驱动、图形库移植、触摸控制和游戏逻辑设计。 目录 简介 一、硬件准备 二、软件架构 三、…...

[SC]SystemC在CPU和GPU等复杂SoC验证中的应用

SystemC在CPU和GPU等复杂SoC验证中的应用 摘要:SystemC 是一种基于 C++ 的硬件描述和仿真语言,广泛用于系统级设计和验证,特别是在 CPU 和 GPU 等复杂 SoC (System on Chip) 的验证工作中。通过 SystemC,你可以构建硬件模块、定义时序行为、进行系统级仿真,并与 UV…...

鸿蒙OSUniApp导航栏组件开发:打造清新简约的用户界面#三方框架 #Uniapp

UniApp 开发实战:打造符合鸿蒙设计风格的日历活动安排组件 在移动应用开发中,日历和活动安排是非常常见的需求。本文将详细介绍如何使用 UniApp 框架开发一个优雅的日历活动安排组件,并融入鸿蒙系统的设计理念,实现一个既美观又实…...

力扣HOT100之动态规划:300. 最长递增子序列

这道题之前刷代码随想录的时候也刷过,现在又给忘完了。自己尝试着写了一下,发现怎么写都写不对,直接去看视频了。。我自己写的时候的定义是:考虑下标0 ~ i范围内索赔能取到的最长严格递增子序列的长度,后面发现在写递推…...

EEPROM库详解

EEPROM EEPROM 地址空间: 每个字节有唯一地址(从 0 开始),例如 ATmega328P 的地址范围是 0~1023(共 1KB)。不同型号的 Arduino 板 EEPROM 大小不同(如 Mega2560 为 4KB,地址 0~409…...

JDK21深度解密 Day 10:微服务架构适配JDK21

【JDK21深度解密 Day 10】微服务架构适配JDK21 引言:百万并发时代的微服务进化 作为"JDK21深度解密"系列的第10天,今天我们聚焦微服务架构在JDK21时代的技术跃迁。Java语言历史上最大的一次并发模型革新——虚拟线程(Virtual Threads),正在重塑微服务架构的底…...

Java并发编程实战 Day 2:线程安全与synchronized关键字

【Java并发编程实战 Day 2】线程安全与synchronized关键字 开篇 欢迎来到《Java并发编程实战》系列的第二天!在第一天中,我们学习了Java并发编程的基础知识以及线程模型的核心概念。今天我们将继续深入探讨并发编程中的关键问题——线程安全&#xff0…...

在win10/11下Node.js安装配置教程

下载安装 官网链接https://nodejs.org/zh-cn 下载好以后双击打开,点击下一步 勾选,然后下一步 选择路径、下一步 下一步 配置环境 找到我们安装的文件夹,创建两个文件夹 node_global node_cache 在CMD中配置路径 npm config set p…...

飞致云开源社区月度动态报告(2025年5月)

自2023年6月起,中国领先的开源软件公司飞致云以月度为单位发布《飞致云开源社区月度动态报告》,旨在向广大社区用户同步飞致云旗下系列开源软件的发展情况,以及当月主要的产品新版本发布、社区运营成果等相关信息。 飞致云开源运营数据概览&…...

压缩包方式在Linux和Windows下安装mongodb

目录 安装流程安装实例1. Linux安装2. Windows安装 总结 安装流程 zip方式安装 优点:自定义性较高,可以自己控制数据、日志等文件的位置 1、下载安装包 2、解压安装包 3、创建各类文件路径 4、配置conf文件 5、使用自定义配置文件启动 安装实例 1. Li…...

智慧场馆:科技赋能的艺术盛宴

智慧场馆作为城市公共服务设施数字化转型的典型代表,通过深度融合新一代信息技术,构建起全方位、智能化的运营管理体系。其功能架构不仅提升了场馆本身的运营效能,更重塑了公共服务体验模式,展现出显著的社会价值和商业潜力。 一…...

flutter常用动画

Flutter 动画基础概念 术语解释Animation表示动画的值,通常是一个 double (0.0 ~ 1.0) 或其他数值。AnimationController管理动画的时间进度和状态。需要 Ticker (vsync) 来驱动。Tween定义动画的取值范围,如从 0.0 到 1.0,从红色到蓝色。Cu…...

Windows10下使用QEMU安装Ubuntu20.04虚拟机,并启用硬件加速

Windows10下使用QEMU安装Ubuntu20.04虚拟机,并启用硬件加速 作者将狼才鲸创建日期2025-05-30 CSDN阅读地址:Windows10下使用QEMU安装Ubuntu20.04虚拟机,并启用硬件加速 本文档源码地址:Windows10下使用QEMU安装Ubuntu20.04虚拟机…...