C#使用Spire.XLS將Excel工作簿轉(zhuǎn)換為PDF的實(shí)現(xiàn)步驟
引言
在日常工作和開發(fā)中,將Excel報(bào)表轉(zhuǎn)換為PDF是常見需求(如生成可打印的對賬單)。使用Spire.XLS for .NET,無需依賴Excel環(huán)境,幾行C#代碼即可保持原樣式批量轉(zhuǎn)換,輕松實(shí)現(xiàn)自動化文檔輸出。
Part 1: Spire.XLS 簡介與環(huán)境配置
什么是 Spire.XLS?
Spire.XLS 是由 E-iceblue 公司開發(fā)的一款專業(yè)的 .NET Excel 組件,它允許開發(fā)者在 .NET 應(yīng)用程序中創(chuàng)建、讀取、編輯、轉(zhuǎn)換和打印 Excel 文件,而無需安裝 Microsoft Office。它支持所有主流的 Excel 文件格式(.xls, .xlsx, .xlsm, .xltm 等),并且提供了豐富的功能,包括單元格操作、圖表處理、數(shù)據(jù)透 視表、公式計(jì)算等。其高性能和強(qiáng)大的兼容性使得它在處理復(fù)雜 Excel 文件和大規(guī)模數(shù)據(jù)時表現(xiàn)出色。
環(huán)境準(zhǔn)備
在開始編寫代碼之前,我們需要做好以下準(zhǔn)備:
創(chuàng)建一個新的 C# .NET 項(xiàng)目:
- 打開 Visual Studio,選擇“創(chuàng)建新項(xiàng)目”。
- 選擇“控制臺應(yīng)用”(或其他你需要的項(xiàng)目類型,如 ASP.NET Core Web 應(yīng)用)。
- 為項(xiàng)目命名并選擇合適的 .NET 版本。
獲取和安裝 Spire.XLS:
Spire.XLS 可以通過 NuGet 包管理器輕松安裝。
安裝完成后,Spire.XLS 的引用將自動添加到你的項(xiàng)目中。
通過 Visual Studio 界面安裝:
- 在“解決方案資源管理器”中,右鍵點(diǎn)擊你的項(xiàng)目 -> “管理 NuGet 包”。
- 在“瀏覽”選項(xiàng)卡中搜索
Spire.XLS。 - 選擇
Spire.XLS并點(diǎn)擊“安裝”。
通過 NuGet 包管理器控制臺安裝:
- 在 Visual Studio 中,打開“工具” -> “NuGet 包管理器” -> “包管理器控制臺”。
- 運(yùn)行以下命令:
Install-Package Spire.XLS
Part 2: Excel 到 PDF 的基本轉(zhuǎn)換步驟與代碼實(shí)現(xiàn)
使用 Spire.XLS 將 Excel 轉(zhuǎn)換為 PDF 的核心步驟非常簡單明了:
- 加載 Excel 工作簿。
- 調(diào)用
SaveToFile()方法并指定輸出格式為 PDF。
下面是一個完整的 C# 代碼示例,演示了最基本的 Excel 到 PDF 轉(zhuǎn)換過程:
using System;
using Spire.Xls; // 引入 Spire.Xls 命名空間
namespace ExcelToPdfConverter
{
class Program
{
static void Main(string[] args)
{
// 1. 創(chuàng)建一個 Workbook 實(shí)例
Workbook workbook = new Workbook();
// 2. 加載源 Excel 文件
// 請確保 'Sample.xlsx' 文件存在于你的項(xiàng)目運(yùn)行目錄下,或者提供完整的文件路徑。
// 這里我們以 Excel 2010 格式為例。Spire.XLS 支持多種 Excel 版本。
workbook.LoadFromFile("Sample.xlsx", ExcelVersion.Version2010);
// 3. 將工作簿保存為 PDF 文件
// 'result.pdf' 將是輸出的 PDF 文件名。
// Spire.Xls.FileFormat.PDF 指定了輸出格式為 PDF。
workbook.SaveToFile("result.pdf", Spire.Xls.FileFormat.PDF);
Console.WriteLine("Excel 文件已成功轉(zhuǎn)換為 PDF!輸出文件:result.pdf");
Console.ReadKey(); // 暫??刂婆_,方便查看輸出
}
}
}
代碼說明:
Workbook workbook = new Workbook();:創(chuàng)建了一個Workbook對象,它是 Spire.XLS 中操作 Excel 文件的核心。workbook.LoadFromFile("Sample.xlsx", ExcelVersion.Version2010);:加載名為Sample.xlsx的 Excel 文件。ExcelVersion.Version2010用于指定文件版本,通常 Spire.XLS 會自動識別,但明確指定可以提高兼容性。workbook.SaveToFile("result.pdf", Spire.Xls.FileFormat.PDF);:這是轉(zhuǎn)換的核心方法。它將加載的 Excel 工作簿保存為result.pdf文件,并通過Spire.Xls.FileFormat.PDF參數(shù)明確指定了輸出格式為 PDF。
運(yùn)行這段代碼,你將在項(xiàng)目輸出目錄下看到一個名為 result.pdf 的文件,它就是由 Sample.xlsx 轉(zhuǎn)換而來的 PDF 版本。
Part 3: 高級轉(zhuǎn)換選項(xiàng)與常見問題處理
Spire.XLS 不僅能實(shí)現(xiàn)簡單的轉(zhuǎn)換,還提供了豐富的選項(xiàng)來精細(xì)控制 PDF 的生成,滿足更復(fù)雜的轉(zhuǎn)換需求。
頁面設(shè)置與格式控制
在將 Excel 轉(zhuǎn)換為 PDF 時,常常需要對頁面布局、打印范圍進(jìn)行調(diào)整。Spire.XLS 提供了 Worksheet.PageSetup 屬性來控制這些選項(xiàng)。
using System;
using Spire.Xls;
namespace ExcelToPdfAdvanced
{
class Program
{
static void Main(string[] args)
{
Workbook workbook = new Workbook();
workbook.LoadFromFile("Sample.xlsx"); // 默認(rèn)加載最新版本
// 獲取第一個工作表
Worksheet sheet = workbook.Worksheets[0];
// --- 頁面設(shè)置 ---
// 設(shè)置頁面方向?yàn)闄M向
sheet.PageSetup.Orientation = PageOrientationType.Landscape;
// 設(shè)置紙張大小為 A4
sheet.PageSetup.PaperSize = PaperSizeType.PaperA4;
// 設(shè)置頁邊距(英寸)
sheet.PageSetup.LeftMargin = 0.5;
sheet.PageSetup.RightMargin = 0.5;
sheet.PageSetup.TopMargin = 0.75;
sheet.PageSetup.BottomMargin = 0.75;
// --- 打印范圍控制 ---
// 僅打印指定區(qū)域 (例如 A1 到 H20)
sheet.PageSetup.PrintArea = "A1:H20";
// 或者,如果你只想轉(zhuǎn)換特定工作表為 PDF
string outputPdfPath = "WorksheetOutput.pdf";
sheet.SaveToPdf(outputPdfPath); // 將單個工作表保存為PDF
// --- 頁眉頁腳設(shè)置 ---
// 設(shè)置左側(cè)頁眉
sheet.PageSetup.LeftHeader = "&"Arial"&8&B&I&K0000FF左側(cè)頁眉";
// 設(shè)置右側(cè)頁腳,包含頁碼和總頁數(shù)
sheet.PageSetup.RightFooter = "頁碼 &P / &N";
// 保存整個工作簿為 PDF,應(yīng)用上述設(shè)置
workbook.SaveToFile("AdvancedResult.pdf", Spire.Xls.FileFormat.PDF);
Console.WriteLine("Excel 文件已應(yīng)用高級設(shè)置并轉(zhuǎn)換為 PDF!輸出文件:AdvancedResult.pdf");
Console.WriteLine("單個工作表已轉(zhuǎn)換為 PDF!輸出文件:" + outputPdfPath);
Console.ReadKey();
}
}
}
關(guān)鍵 API 解釋:
sheet.PageSetup.Orientation = PageOrientationType.Landscape;:設(shè)置頁面為橫向。sheet.PageSetup.PaperSize = PaperSizeType.PaperA4;:設(shè)置紙張大小為 A4。sheet.PageSetup.LeftMargin = 0.5;:設(shè)置左頁邊距為 0.5 英寸。sheet.PageSetup.PrintArea = "A1:H20";:指定只打印A1到H20區(qū)域的內(nèi)容。sheet.SaveToPdf(outputPdfPath);:將當(dāng)前工作表單獨(dú)保存為 PDF。sheet.PageSetup.LeftHeader/RightFooter:用于設(shè)置頁眉頁腳,支持豐富的格式代碼(如&P代表當(dāng)前頁碼,&N代表總頁數(shù))。
安全性設(shè)置(密碼保護(hù))
Spire.XLS 也支持為生成的 PDF 文件添加密碼保護(hù),以增強(qiáng)文檔的安全性。
// ... (之前的加載 Excel 代碼)
PdfSaveOptions options = new PdfSaveOptions();
options.Password = "mySecurePassword"; // 設(shè)置 PDF 打開密碼
workbook.SaveToFile("EncryptedResult.pdf", options);
Console.WriteLine("已生成帶密碼保護(hù)的 PDF 文件:EncryptedResult.pdf");
常見問題與解決方案
- 問題1:轉(zhuǎn)換后 PDF 樣式與 Excel 不一致?
- 原因分析: 這可能是由于系統(tǒng)缺少 Excel 中使用的特定字體,或者 Excel 文件中包含的復(fù)雜圖。
以上就是C#使用Spire.XLS將Excel工作簿轉(zhuǎn)換為PDF的實(shí)現(xiàn)步驟的詳細(xì)內(nèi)容,更多關(guān)于C# Spire.XLS將Excel轉(zhuǎn)為PDF的資料請關(guān)注腳本之家其它相關(guān)文章!
相關(guān)文章
C#自定義繁體和簡體字庫實(shí)現(xiàn)中文繁體和簡體之間轉(zhuǎn)換的方法
這篇文章主要介紹了C#自定義繁體和簡體字庫實(shí)現(xiàn)中文繁體和簡體之間轉(zhuǎn)換的方法,通過自定義繁簡轉(zhuǎn)換字庫實(shí)現(xiàn)繁體與簡體轉(zhuǎn)換的技巧,非常具有實(shí)用價值,需要的朋友可以參考下2015-04-04
C#中計(jì)數(shù)排序算法的原理及實(shí)現(xiàn)
計(jì)數(shù)排序是一種線性時間復(fù)雜度的排序方法,主要通過統(tǒng)計(jì)元素出現(xiàn)的次數(shù)實(shí)現(xiàn)排序,文中通過示例代碼介紹的非常詳細(xì),對大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價值,需要的朋友們下面隨著小編來一起學(xué)習(xí)學(xué)習(xí)吧2024-10-10
C#構(gòu)建樹形結(jié)構(gòu)數(shù)據(jù)(全部構(gòu)建,查找構(gòu)建)
這篇文章主要介紹了C#構(gòu)建樹形結(jié)構(gòu)數(shù)據(jù)(全部構(gòu)建,查找構(gòu)建),小編覺得挺不錯的,現(xiàn)在分享給大家,也給大家做個參考。一起跟隨小編過來看看吧2017-10-10
圖解如何使用C#創(chuàng)建Windows服務(wù)
本文主要介紹了圖解如何使用C#創(chuàng)建Windows服務(wù),文中通過示例代碼介紹的非常詳細(xì),對大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價值,需要的朋友們下面隨著小編來一起學(xué)習(xí)學(xué)習(xí)吧2023-07-07
c#獲取字符串寬度的示例代碼(字節(jié)數(shù)方法)
本篇文章主要介紹了c#獲取字符串寬度的示例代碼(字節(jié)數(shù)方法)。需要的朋友可以過來參考下,希望對大家有所幫助2014-01-01

