区分wps还是office创建的文档,word、ppt和excel

2024-08-30 01:44

本文主要是介绍区分wps还是office创建的文档,word、ppt和excel,希望对大家解决编程问题提供一定的参考价值,需要的开发者们随着小编来一起学习吧!

手动区分

文档->右键->属性
在这里插入图片描述
在这里插入图片描述

代码实现

namespace WpsAndOfficeDifferent
{internal class Program{static void Main(string[] args){string root = System.AppDomain.CurrentDomain.SetupInformation.ApplicationBase ?? "";#region 区分office和wps创建的doc和docx文件//Console.WriteLine(GetWordAppName(Path.Combine(root,"Word","office.doc")));//Console.WriteLine(GetWordAppName(Path.Combine(root, "Word", "wps.doc")));//Console.WriteLine(GetWordAppName(Path.Combine(root, "Word", "office.docx")));//Console.WriteLine(GetWordAppName(Path.Combine(root, "Word", "wps.docx")));//Console.WriteLine("使用wps修改office word");office创建的doc,wps修改也不会改变,docx会改变//Console.WriteLine(GetWordAppName(Path.Combine(root, "Word", "office2wps.doc")));//Console.WriteLine(GetWordAppName(Path.Combine(root, "Word", "office2wps.docx")));//Console.WriteLine("使用office修改wps word");wps创建的doc,office修改也不会改变,docx会改变//Console.WriteLine(GetWordAppName(Path.Combine(root, "Word", "wps2office.doc")));//Console.WriteLine(GetWordAppName(Path.Combine(root, "Word", "wps2office.docx")));Console.WriteLine(GetWordAppNameByAspose(Path.Combine(root, "Word", "office.doc")));Console.WriteLine(GetWordAppNameByAspose(Path.Combine(root, "Word", "wps.doc")));Console.WriteLine(GetWordAppNameByAspose(Path.Combine(root, "Word", "office.docx")));Console.WriteLine(GetWordAppNameByAspose(Path.Combine(root, "Word", "wps.docx")));Console.WriteLine("使用wps修改office word");//office创建的doc,wps修改也不会改变,docx会改变Console.WriteLine(GetWordAppNameByAspose(Path.Combine(root, "Word", "office2wps.doc")));Console.WriteLine(GetWordAppNameByAspose(Path.Combine(root, "Word", "office2wps.docx")));Console.WriteLine("使用office修改wps word");//wps创建的doc,office修改也不会改变,docx会改变Console.WriteLine(GetWordAppNameByAspose(Path.Combine(root, "Word", "wps2office.doc")));Console.WriteLine(GetWordAppNameByAspose(Path.Combine(root, "Word", "wps2office.docx")));#endregion#region 区分office和wps创建的xls和xlsx//Console.WriteLine(GetExcelAppName(Path.Combine(root,"Excel", "office.xls")));//Console.WriteLine(GetExcelAppName(Path.Combine(root, "Excel", "wps.xls")));//Console.WriteLine(GetExcelAppName(Path.Combine(root, "Excel", "office.xlsx")));//spire.xls不支持读取wps创建的xlsx//Console.WriteLine(GetExcelAppName(Path.Combine(root, "Excel", "wps.xlsx")));//xls能区分谁创建的,xlsx wps创建会多一些自定义属性,//但是wps修改office也会多wps自定义属性,ApplicationName一样//wps和office的xlsx格式兼容区分不出来影响不大Console.WriteLine(GetExcelAppNameByAspose(Path.Combine(root, "Excel", "office.xls")));Console.WriteLine(GetExcelAppNameByAspose(Path.Combine(root, "Excel", "wps.xls")));Console.WriteLine(GetExcelAppNameByAspose(Path.Combine(root, "Excel", "office.xlsx")));Console.WriteLine(GetExcelAppNameByAspose(Path.Combine(root, "Excel", "wps.xlsx")));Console.WriteLine("使用wps修改office excel");Console.WriteLine(GetExcelAppNameByAspose(Path.Combine(root, "Excel", "office2wps.xls")));Console.WriteLine(GetExcelAppNameByAspose(Path.Combine(root, "Excel", "office2wps.xlsx")));Console.WriteLine("使用office修改wps excel");Console.WriteLine(GetExcelAppNameByAspose(Path.Combine(root, "Excel", "wps2office.xls")));Console.WriteLine(GetExcelAppNameByAspose(Path.Combine(root, "Excel", "wps2office.xlsx")));#endregion#region 区分office和wps创建的ppt和pptx//ppt能区分谁创建的,修改了不会改变//pptx能区分谁创建的,但是谁修改了就变成对应的那个应用程序//Console.WriteLine(GetPptAppName(Path.Combine(root, "PPT", "office.ppt")));//Console.WriteLine(GetPptAppName(Path.Combine(root, "PPT", "wps.ppt")));//Console.WriteLine(GetPptAppName(Path.Combine(root, "PPT", "office.pptx")));//Console.WriteLine(GetPptAppName(Path.Combine(root, "PPT", "wps.pptx")));//Console.WriteLine("使用wps修改office ppt");//Console.WriteLine(GetExcelAppNameByAspose(Path.Combine(root, "PPT", "office2wps.ppt")));//Console.WriteLine(GetExcelAppNameByAspose(Path.Combine(root, "PPT", "office2wps.pptx")));//Console.WriteLine("使用office修改wps ppt");//Console.WriteLine(GetExcelAppNameByAspose(Path.Combine(root, "PPT", "wps2office.ppt")));//Console.WriteLine(GetExcelAppNameByAspose(Path.Combine(root, "PPT", "wps2office.pptx")));Console.WriteLine(GetPptAppNameByAspose(Path.Combine(root, "PPT", "office.ppt")));Console.WriteLine(GetPptAppNameByAspose(Path.Combine(root, "PPT", "wps.ppt")));Console.WriteLine(GetPptAppNameByAspose(Path.Combine(root, "PPT", "office.pptx")));Console.WriteLine(GetPptAppNameByAspose(Path.Combine(root, "PPT", "wps.pptx")));Console.WriteLine("使用wps修改office ppt");Console.WriteLine(GetPptAppNameByAspose(Path.Combine(root, "PPT", "office2wps.ppt")));Console.WriteLine(GetPptAppNameByAspose(Path.Combine(root, "PPT", "office2wps.pptx")));Console.WriteLine("使用office修改wps ppt");Console.WriteLine(GetPptAppNameByAspose(Path.Combine(root, "PPT", "wps2office.ppt")));Console.WriteLine(GetPptAppNameByAspose(Path.Combine(root, "PPT", "wps2office.pptx")));#endregionConsole.Read();}/// <summary>/// 区分wrod/// </summary>/// <param name="docPath"></param>static string GetWordAppName(string docPath){//创建一个Document实例using var doc = new Spire.Doc.Document();//加载一个现有Word文档doc.LoadFromFile(docPath);var appName = doc.BuiltinDocumentProperties.ApplicationName;return appName;//获取摘要//Console.WriteLine("摘要\n");//Console.WriteLine("标题: " + doc.BuiltinDocumentProperties.Title);//Console.WriteLine("主题: " + doc.BuiltinDocumentProperties.Subject);//Console.WriteLine("作者: " + doc.BuiltinDocumentProperties.Author);//Console.WriteLine("主管: " + doc.BuiltinDocumentProperties.Manager);//Console.WriteLine("单位: " + doc.BuiltinDocumentProperties.Company);//Console.WriteLine("类别: " + doc.BuiltinDocumentProperties.Category);//Console.WriteLine("关键字: " + doc.BuiltinDocumentProperties.Keywords);//Console.WriteLine("备注: " + doc.BuiltinDocumentProperties.Comments);//Console.WriteLine("修订号: " + doc.BuiltinDocumentProperties.RevisionNumber);//Console.WriteLine("程序名称:" + doc.BuiltinDocumentProperties.ApplicationName);//获取自定义属性//Console.WriteLine("\n自定义属性\n");//for (int i = 0; i < doc.CustomDocumentProperties.Count; i++)//{//    Console.WriteLine(doc.CustomDocumentProperties[i].Name + ": " + doc.CustomDocumentProperties[i].Value);//}}/// <summary>/// 区分wrod/// </summary>/// <param name="docPath"></param>static string GetWordAppNameByAspose(string docPath){//创建一个Document实例var doc = new Aspose.Words.Document(docPath);var appName = doc.BuiltInDocumentProperties.NameOfApplication;return appName;}/// <summary>/// 区分excel/// </summary>/// <param name="excelPath"></param>/// <returns></returns>static string GetExcelAppName(string excelPath){//创建一个Document实例using var workbook = new Spire.Xls.Workbook();//加载一个现有Word文档workbook.LoadFromFile(excelPath);var appName = workbook.DocumentProperties.ApplicationName;return appName;}/// <summary>/// 区分excel/// </summary>/// <param name="excelPath"></param>/// <returns></returns>static string GetExcelAppNameByAspose(string excelPath){using var workbook = new Aspose.Cells.Workbook(excelPath);var appName = workbook.BuiltInDocumentProperties.NameOfApplication;//foreach (var item in workbook.CustomDocumentProperties)//{//    Console.WriteLine(item.Name);//    Console.WriteLine(item.Value);//}var isWpsCreate = workbook.CustomDocumentProperties.Any(p => p.Name.Equals("KSOProductBuildVer"));if (isWpsCreate){Console.WriteLine("wps创建");}return appName;}/// <summary>/// 区分wrod/// </summary>/// <param name="pptPath"></param>static string GetPptAppName(string pptPath){//创建一个PPT实例using var ppt = new Spire.Presentation.Presentation();//加载一个现有PPT文档ppt.LoadFromFile(pptPath);var appName = ppt.DocumentProperty.Application;return appName;}/// <summary>/// 区分wrod/// </summary>/// <param name="pptPath"></param>static string GetPptAppNameByAspose(string pptPath){//创建一个Document实例var ppt = new Aspose.Slides.Presentation(pptPath);var appName = ppt.DocumentProperties.NameOfApplication;return appName;}}
}

在这里插入图片描述

结论

总结,如果是之查看不修改,则不会改变创建的应用
doc、xls、ppt这种以前的格式,只会保留创建的应用,即使其他的程序修改了也不会改变
docx、xlsx和pptx这种如果有新的软件修改则记录新的修改软件
wps xlsx和office的格式一致,通过applicationname没法区分,
wps创建或者修改过就会多一个属性KSOProductBuildVer,即使office再次改变还是会有

这篇关于区分wps还是office创建的文档,word、ppt和excel的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!



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

相关文章

Java 虚拟线程的创建与使用深度解析

《Java虚拟线程的创建与使用深度解析》虚拟线程是Java19中以预览特性形式引入,Java21起正式发布的轻量级线程,本文给大家介绍Java虚拟线程的创建与使用,感兴趣的朋友一起看看吧... 目录一、虚拟线程简介1.1 什么是虚拟线程?1.2 为什么需要虚拟线程?二、虚拟线程与平台线程对比代码对比示例:三

k8s按需创建PV和使用PVC详解

《k8s按需创建PV和使用PVC详解》Kubernetes中,PV和PVC用于管理持久存储,StorageClass实现动态PV分配,PVC声明存储需求并绑定PV,通过kubectl验证状态,注意回收... 目录1.按需创建 PV(使用 StorageClass)创建 StorageClass2.创建 PV

Linux创建服务使用systemctl管理详解

《Linux创建服务使用systemctl管理详解》文章指导在Linux中创建systemd服务,设置文件权限为所有者读写、其他只读,重新加载配置,启动服务并检查状态,确保服务正常运行,关键步骤包括权... 目录创建服务 /usr/lib/systemd/system/设置服务文件权限:所有者读写js,其他

idea+spring boot创建项目的搭建全过程

《idea+springboot创建项目的搭建全过程》SpringBoot是Spring社区发布的一个开源项目,旨在帮助开发者快速并且更简单的构建项目,:本文主要介绍idea+springb... 目录一.idea四种搭建方式1.Javaidea命名规范2JavaWebTomcat的安装一.明确tomcat

使用Java填充Word模板的操作指南

《使用Java填充Word模板的操作指南》本文介绍了Java填充Word模板的实现方法,包括文本、列表和复选框的填充,首先通过Word域功能设置模板变量,然后使用poi-tl、aspose-words... 目录前言一、设置word模板普通字段列表字段复选框二、代码1. 引入POM2. 模板放入项目3.代码

使用EasyPoi快速导出Word文档功能的实现步骤

《使用EasyPoi快速导出Word文档功能的实现步骤》EasyPoi是一个基于ApachePOI的开源Java工具库,旨在简化Excel和Word文档的操作,本文将详细介绍如何使用EasyPoi快速... 目录一、准备工作1、引入依赖二、准备好一个word模版文件三、编写导出方法的工具类四、在Export

利用Python操作Word文档页码的实际应用

《利用Python操作Word文档页码的实际应用》在撰写长篇文档时,经常需要将文档分成多个节,每个节都需要单独的页码,下面:本文主要介绍利用Python操作Word文档页码的相关资料,文中通过代码... 目录需求:文档详情:要求:该程序的功能是:总结需求:一次性处理24个文档的页码。文档详情:1、每个

前端导出Excel文件出现乱码或文件损坏问题的解决办法

《前端导出Excel文件出现乱码或文件损坏问题的解决办法》在现代网页应用程序中,前端有时需要与后端进行数据交互,包括下载文件,:本文主要介绍前端导出Excel文件出现乱码或文件损坏问题的解决办法,... 目录1. 检查后端返回的数据格式2. 前端正确处理二进制数据方案 1:直接下载(推荐)方案 2:手动构造

C#利用Free Spire.XLS for .NET复制Excel工作表

《C#利用FreeSpire.XLSfor.NET复制Excel工作表》在日常的.NET开发中,我们经常需要操作Excel文件,本文将详细介绍C#如何使用FreeSpire.XLSfor.NET... 目录1. 环境准备2. 核心功能3. android示例代码3.1 在同一工作簿内复制工作表3.2 在不同

C++读写word文档(.docx)DuckX库的使用详解

《C++读写word文档(.docx)DuckX库的使用详解》DuckX是C++库,用于创建/编辑.docx文件,支持读取文档、添加段落/片段、编辑表格,解决中文乱码需更改编码方案,进阶功能含文本替换... 目录一、基本用法1. 读取文档3. 添加段落4. 添加片段3. 编辑表格二、进阶用法1. 文本替换2