欢迎您访问程序员文章站本站旨在为大家提供分享程序员计算机编程知识!
您现在的位置是: 首页  >  IT编程

C# 将Excel转为PDF时自定义表格纸张大小的代码思路

程序员文章站 2022-03-29 08:13:00
通过后端程序将excel表格转为pdf格式时,直接转换后的pdf效果可能出现表格页面过小或者过大,导致页面内容分布不均。要改善转换后的文档效果,只需在转换前自定义表格纸张大小,即可调整转换后的pdf页...

通过后端程序将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

通过设置不同的宽度和高度,在转换后可呈现不同效果,如图:

C# 将Excel转为PDF时自定义表格纸张大小的代码思路

注意事项

  • 代码中的excel和pdf路径为的vs程序的debug路径,如本次路径为:f:\vs2017project\exceltopdf\exceltopdfwithcustompagesize\bin\debug\test.xlsx ,文件路径自定义为其他路径。
  • 注意这里引入的是spire.xls.dll v11.11.2版本。转换前的页面大小设置为该版本中写入的新功能,在旧版本和免费版本中暂不支持。

到此这篇关于c# 将excel转为pdf时自定义表格纸张大小的文章就介绍到这了,更多相关c#自定义表格纸张大小内容请搜索以前的文章或继续浏览下面的相关文章希望大家以后多多支持!