通過后端程式將Excel表格轉為PDF格式時,直接轉換后的PDF效果可能出現表格頁面過小或者過大,導致頁面內容分布不均,要改善轉換后的檔案效果,只需在轉換前自定義表格紙張大小,即可調整轉換后的PDF頁面表格布局效果,下面是具體方法和步驟,
引入dll
在Visual Studio中,打開“解決方案資源管理器”,滑鼠右鍵點擊“參考”,
1.通過NuGet安裝dll(2種方法)
1.1 可以在Visual Studio中打開“解決方案資源管理器”,滑鼠右鍵點擊“參考”,“管理NuGet包”,然后搜索Spire.XLS安裝,
1.2 將以下內容復制到PM控制臺安裝,
Install-Package Spire.XLS -Version 11.11.2
2.手動添加dll參考
可通過手動下載包,然后解壓,找到BIN檔案夾下的Spire.Xls.dll,然后在Visual Studio中打開“解決方案資源管理器”,滑鼠右鍵點擊“參考”,“添加參考”將本地路徑BIN檔案夾下的dll檔案添加參考至程式,
代碼及轉換設定
代碼思路:
1.實體化Workbook類的物件,然后呼叫Workbook.LoadFromFile(string fileName)方法加載Excel檔案,
2.通過 Workbook.Worksheets屬性獲取Worksheet類的的物件,即獲取作業表
3.通過PageSetup.SetCustomPaperSize(float width, float height)方法自定義表格寬度及高度,
4.最后,呼叫Workbook.SaveToFile(string fileName, FileFormat fileFormat)方法保存為PDF格式,
C#
using Spire.Xls; namespace ExcelToPDFwithCustomPageSize { class Program { static void Main(string[] args) { //實體化Workbook類的物件 Workbook workbook = new Workbook(); //加載Excel測驗檔案 workbook.LoadFromFile("test.xlsx"); //遍歷作業表 for(int i=0; i<workbook.Worksheets.Count;i++) { Worksheet sheet = workbook.Worksheets[i]; //自定義紙張大小 sheet.PageSetup.SetCustomPaperSize(620,310); //保存為PDF格式 workbook.SaveToFile("ToPDF.pdf", FileFormat.PDF); } } } }
VB.NET
Imports Spire.Xls Namespace ExcelToPDFwithCustomPageSize Class Program Private Shared Sub Main(args As String()) '實體化Workbook類的物件 Dim workbook As New Workbook() '加載Excel測驗檔案 workbook.LoadFromFile("test.xlsx") '遍歷作業表 For i As Integer = 0 To workbook.Worksheets.Count - 1 Dim sheet As Worksheet = workbook.Worksheets(i) '自定義紙張大小 sheet.PageSetup.SetCustomPaperSize(620, 310) '保存為PDF格式 workbook.SaveToFile("ToPDF.pdf", FileFormat.PDF) Next End Sub End Class End Namespace
通過設定不同的寬度和高度,在轉換后可呈現不同效果,如圖:

注意事項
- 代碼中的Excel和PDF路徑為的VS程式的Debug路徑,如本次路徑為:F:\VS2017Project\ExceltoPDF\ExcelToPDFwithCustomPageSize\bin\Debug\test.xlsx ,檔案路徑自定義為其他路徑,
- 注意這里引入的是spire.xls.dll v11.11.2版本,轉換前的頁面大小設定為該版本中寫入的新功能,在舊版本和免費版本中暫不支持,
轉載請註明出處,本文鏈接:https://www.uj5u.com/net/373648.html
標籤:C#
