zoukankan      html  css  js  c++  java
  • C# 将Excel转为PDF时自定义表格纸张大小 E

    通过后端程序将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版本。转换前的页面大小设置为该版本中写入的新功能,在旧版本和免费版本中暂不支持。
  • 相关阅读:
    Educational Codeforces Round 85 D. Minimum Euler Cycle(模拟/数学/图)
    Educational Codeforces Round 85 C. Circle of Monsters(贪心)
    NOIP 2017 提高组 DAY1 T1小凯的疑惑(二元一次不定方程)
    Educational Codeforces Round 85 B. Middle Class(排序/贪心/水题)
    Educational Codeforces Round 85 A. Level Statistics(水题)
    IOS中的三大事件
    用Quartz 2D画小黄人
    strong、weak、copy、assign 在命名属性时候怎么用
    用代码生成UINavigationController 与UITabBarController相结合的简单QQ框架(部分)
    Attempting to badge the application icon but haven't received permission from the user to badge the application错误解决办法
  • 原文地址:https://www.cnblogs.com/Yesi/p/15620424.html
Copyright © 2011-2022 走看看