• 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版本。转换前的页面大小设置为该版本中写入的新功能,在旧版本和免费版本中暂不支持。
  • 相关阅读:
    10月27号
    10月23号
    10月26号
    10月30号
    10月28号
    10月29号
    JAVA日报
    JAVA日报
    JAVA日报
    JAVA日报
  • 原文地址:https://www.cnblogs.com/Yesi/p/15620424.html
Copyright © 2020-2023  润新知