網站首頁 編程語言 正文
通過后端程序將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.cnblogs.com/Yesi/p/15620424.html
相關推薦
- 2022-02-24 Matlab中plot函數及l(fā)egend函數詳解
- 2022-10-31 Python入門之字典的使用教程_python
- 2022-11-30 Android實現一鍵鎖屏功能_Android
- 2022-03-28 Python?PCA降維的兩種實現方法_python
- 2022-07-30 Linux下查看文件和文件夾大小
- 2022-07-02 webpack分離公共模塊失敗
- 2022-08-19 SpringMVC異常處理器
- 2022-12-27 詳解Golang中interface接口的原理和使用技巧_Golang
- 最近更新
-
- window11 系統(tǒng)安裝 yarn
- 超詳細win安裝深度學習環(huán)境2025年最新版(
- Linux 中運行的top命令 怎么退出?
- MySQL 中decimal 的用法? 存儲小
- get 、set 、toString 方法的使
- @Resource和 @Autowired注解
- Java基礎操作-- 運算符,流程控制 Flo
- 1. Int 和Integer 的區(qū)別,Jav
- spring @retryable不生效的一種
- Spring Security之認證信息的處理
- Spring Security之認證過濾器
- Spring Security概述快速入門
- Spring Security之配置體系
- 【SpringBoot】SpringCache
- Spring Security之基于方法配置權
- redisson分布式鎖中waittime的設
- maven:解決release錯誤:Artif
- restTemplate使用總結
- Spring Security之安全異常處理
- MybatisPlus優(yōu)雅實現加密?
- Spring ioc容器與Bean的生命周期。
- 【探索SpringCloud】服務發(fā)現-Nac
- Spring Security之基于HttpR
- Redis 底層數據結構-簡單動態(tài)字符串(SD
- arthas操作spring被代理目標對象命令
- Spring中的單例模式應用詳解
- 聊聊消息隊列,發(fā)送消息的4種方式
- bootspring第三方資源配置管理
- GIT同步修改后的遠程分支