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

本文主要是介绍C#编写ASP.NET Core的Web API并部署到IIS上的详细教程(API用于准确获取Word/Excel/PPT/PDF的页数)4 -获取Excel的页数,希望对大家解决编程问题提供一定的参考价值,需要的开发者们随着小编来一起学习吧!

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

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

1.前言

本文是接:
《C#编写ASP.NET Core的Web API并部署到IIS上的详细教程(API用于准确获取Word/Excel/PPT/PDF的页数)1 -环境准备及创建项目》
《C#编写ASP.NET Core的Web API并部署到IIS上的详细教程(API用于准确获取Word/Excel/PPT/PDF的页数)2 -获取Word的页数》
《C#编写ASP.NET 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#编写ASP.NET Core的Web API并部署到IIS上的详细教程(API用于准确获取Word/Excel/PPT/PDF的页数)4 -获取Excel的页数的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!



http://www.chinasem.cn/article/231566

相关文章

在Ubuntu上部署SpringBoot应用的操作步骤

《在Ubuntu上部署SpringBoot应用的操作步骤》随着云计算和容器化技术的普及,Linux服务器已成为部署Web应用程序的主流平台之一,Java作为一种跨平台的编程语言,具有广泛的应用场景,本... 目录一、部署准备二、安装 Java 环境1. 安装 JDK2. 验证 Java 安装三、安装 mys

最新版IDEA配置 Tomcat的详细过程

《最新版IDEA配置Tomcat的详细过程》本文介绍如何在IDEA中配置Tomcat服务器,并创建Web项目,首先检查Tomcat是否安装完成,然后在IDEA中创建Web项目并添加Web结构,接着,... 目录配置tomcat第一步,先给项目添加Web结构查看端口号配置tomcat    先检查自己的to

使用Nginx来共享文件的详细教程

《使用Nginx来共享文件的详细教程》有时我们想共享电脑上的某些文件,一个比较方便的做法是,开一个HTTP服务,指向文件所在的目录,这次我们用nginx来实现这个需求,本文将通过代码示例一步步教你使用... 在本教程中,我们将向您展示如何使用开源 Web 服务器 Nginx 设置文件共享服务器步骤 0 —

Golang使用minio替代文件系统的实战教程

《Golang使用minio替代文件系统的实战教程》本文讨论项目开发中直接文件系统的限制或不足,接着介绍Minio对象存储的优势,同时给出Golang的实际示例代码,包括初始化客户端、读取minio对... 目录文件系统 vs Minio文件系统不足:对象存储:miniogolang连接Minio配置Min

C#实现文件读写到SQLite数据库

《C#实现文件读写到SQLite数据库》这篇文章主要为大家详细介绍了使用C#将文件读写到SQLite数据库的几种方法,文中的示例代码讲解详细,感兴趣的小伙伴可以参考一下... 目录1. 使用 BLOB 存储文件2. 存储文件路径3. 分块存储文件《文件读写到SQLite数据库China编程的方法》博客中,介绍了文

基于Python实现PDF动画翻页效果的阅读器

《基于Python实现PDF动画翻页效果的阅读器》在这篇博客中,我们将深入分析一个基于wxPython实现的PDF阅读器程序,该程序支持加载PDF文件并显示页面内容,同时支持页面切换动画效果,文中有详... 目录全部代码代码结构初始化 UI 界面加载 PDF 文件显示 PDF 页面页面切换动画运行效果总结主

使用C#如何创建人名或其他物体随机分组

《使用C#如何创建人名或其他物体随机分组》文章描述了一个随机分配人员到多个团队的代码示例,包括将人员列表随机化并根据组数分配到不同组,最后按组号排序显示结果... 目录C#创建人名或其他物体随机分组此示例使用以下代码将人员分配到组代码首先将lstPeople ListBox总结C#创建人名或其他物体随机分组

使用JavaScript将PDF页面中的标注扁平化的操作指南

《使用JavaScript将PDF页面中的标注扁平化的操作指南》扁平化(flatten)操作可以将标注作为矢量图形包含在PDF页面的内容中,使其不可编辑,DynamsoftDocumentViewer... 目录使用Dynamsoft Document Viewer打开一个PDF文件并启用标注添加功能扁平化

SpringBoot集成SOL链的详细过程

《SpringBoot集成SOL链的详细过程》Solanaj是一个用于与Solana区块链交互的Java库,它为Java开发者提供了一套功能丰富的API,使得在Java环境中可以轻松构建与Solana... 目录一、什么是solanaj?二、Pom依赖三、主要类3.1 RpcClient3.2 Public

在C#中合并和解析相对路径方式

《在C#中合并和解析相对路径方式》Path类提供了几个用于操作文件路径的静态方法,其中包括Combine方法和GetFullPath方法,Combine方法将两个路径合并在一起,但不会解析包含相对元素... 目录C#合并和解析相对路径System.IO.Path类幸运的是总结C#合并和解析相对路径对于 C