900字范文,内容丰富有趣,生活中的好帮手!
900字范文 > C#编写ASP.NET Core的Web API并部署到IIS上的详细教程(API用于准确获取Word/Excel/

C#编写ASP.NET Core的Web API并部署到IIS上的详细教程(API用于准确获取Word/Excel/

时间:2021-01-04 00:07:11

相关推荐

C#编写ASP.NET Core的Web API并部署到IIS上的详细教程(API用于准确获取Word/Excel/

C#编写 Core的Web API并部署到IIS上的详细教程(API用于准确获取Word/Excel/PPT/PDF的页数)4 -获取Excel的页数

1.前言2.Excel页数的特殊性3.获取Excel页数的代码4.后记

1.前言

本文是接:

《C#编写 Core的Web API并部署到IIS上的详细教程(API用于准确获取Word/Excel/PPT/PDF的页数)1 -环境准备及创建项目》

《C#编写 Core的Web API并部署到IIS上的详细教程(API用于准确获取Word/Excel/PPT/PDF的页数)2 -获取Word的页数》

《C#编写 Core的Web API并部署到IIS上的详细教程(API用于准确获取Word/Excel/PPT/PDF的页数)3 -获取PPT和PDF的页数》

的第四篇。

由于整个系列介绍得很详细,篇幅较长,所以分成多篇博文进行叙述。个人建议从第一篇博文开始阅读。

2.Excel页数的特殊性

在上代码前,需要先明确Excel的页数到底是什么东西。其实很多人理解成了sheet的数量,其实这是不准确的,Excel有个专门控制页数的功能,叫做“分页符(Row Break)”,在打印Excel的时候,都是基于这个分页符来控制页数。如下图:

然后在“分页视图”中,就可以查看到Excel的分页效果了,如下图:

如果不手动插入分页符,那么在打印的时候Excel会自动根据sheet的高度进行分割成多页。

如果是打印整个工作簿,那么总的页数即为每个sheet的页数之和。

3.获取Excel页数的代码

由于Excel页数的特殊性,Microsoft.Office.Interop.Excel的包中并没有提供现成的获取方法,但是我发现将Excel转换成PDF后,页数是完全一致的。因此下文中的代码的思路是:先将上传的Excel转换成PDF,然后读取PDF文件路径,调用PDFReader.cs类中读页数的方法即可。

获取Excel页数,我也单独封装成一个Service,其提供如下五种方法:

打开Excel,调用转换成PDF的方法,然后调用读取PDF页数的方法,返回页数;将Excel转换成PDF的方法,其调用的是转换Excel文件格式的基础方法,指定转换成PDF,然后返回PDF文件的路径;转换Excel文件格式的基础方法,需返回转换的结果,是成功还是失败;关闭Excel,退出Excel程序;杀掉Excel的死进程;

在项目的Service文件夹下,添加ExcelReader.cs的类,如下图:

代码如下:

using System;namespace DocReaderWebAPIDemo.Service{public class ExcelReader{public static int getExcelPageNum(String path){int pageNum = 0;//Excel的页数,是取决于Excel里设置的RowBreak的数量的。Excel转换成PDF可以保留RowBreak的设置,因此也保持了相同的页数String pdfPath = GetSwitchedPDF

C#编写 Core的Web API并部署到IIS上的详细教程(API用于准确获取Word/Excel/PPT/PDF的页数)4 -获取Excel的页数

本内容不代表本网观点和政治立场,如有侵犯你的权益请联系我们处理。
网友评论
网友评论仅供其表达个人看法,并不表明网站立场。