区分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

相关文章

解决IDEA使用springBoot创建项目,lombok标注实体类后编译无报错,但是运行时报错问题

《解决IDEA使用springBoot创建项目,lombok标注实体类后编译无报错,但是运行时报错问题》文章详细描述了在使用lombok的@Data注解标注实体类时遇到编译无误但运行时报错的问题,分析... 目录问题分析问题解决方案步骤一步骤二步骤三总结问题使用lombok注解@Data标注实体类,编译时

MySQL分表自动化创建的实现方案

《MySQL分表自动化创建的实现方案》在数据库应用场景中,随着数据量的不断增长,单表存储数据可能会面临性能瓶颈,例如查询、插入、更新等操作的效率会逐渐降低,分表是一种有效的优化策略,它将数据分散存储在... 目录一、项目目的二、实现过程(一)mysql 事件调度器结合存储过程方式1. 开启事件调度器2. 创

使用Python合并 Excel单元格指定行列或单元格范围

《使用Python合并Excel单元格指定行列或单元格范围》合并Excel单元格是Excel数据处理和表格设计中的一项常用操作,本文将介绍如何通过Python合并Excel中的指定行列或单... 目录python Excel库安装Python合并Excel 中的指定行Python合并Excel 中的指定列P

C#实现添加/替换/提取或删除Excel中的图片

《C#实现添加/替换/提取或删除Excel中的图片》在Excel中插入与数据相关的图片,能将关键数据或信息以更直观的方式呈现出来,使文档更加美观,下面我们来看看如何在C#中实现添加/替换/提取或删除E... 在Excandroidel中插入与数据相关的图片,能将关键数据或信息以更直观的方式呈现出来,使文档更

mysql外键创建不成功/失效如何处理

《mysql外键创建不成功/失效如何处理》文章介绍了在MySQL5.5.40版本中,创建带有外键约束的`stu`和`grade`表时遇到的问题,发现`grade`表的`id`字段没有随着`studen... 当前mysql版本:SELECT VERSION();结果为:5.5.40。在复习mysql外键约

详解Vue如何使用xlsx库导出Excel文件

《详解Vue如何使用xlsx库导出Excel文件》第三方库xlsx提供了强大的功能来处理Excel文件,它可以简化导出Excel文件这个过程,本文将为大家详细介绍一下它的具体使用,需要的小伙伴可以了解... 目录1. 安装依赖2. 创建vue组件3. 解释代码在Vue.js项目中导出Excel文件,使用第三

Java实现Excel与HTML互转

《Java实现Excel与HTML互转》Excel是一种电子表格格式,而HTM则是一种用于创建网页的标记语言,虽然两者在用途上存在差异,但有时我们需要将数据从一种格式转换为另一种格式,下面我们就来看看... Excel是一种电子表格格式,广泛用于数据处理和分析,而HTM则是一种用于创建网页的标记语言。虽然两

Python进阶之Excel基本操作介绍

《Python进阶之Excel基本操作介绍》在现实中,很多工作都需要与数据打交道,Excel作为常用的数据处理工具,一直备受人们的青睐,本文主要为大家介绍了一些Python中Excel的基本操作,希望... 目录概述写入使用 xlwt使用 XlsxWriter读取修改概述在现实中,很多工作都需要与数据打交

Window Server创建2台服务器的故障转移群集的图文教程

《WindowServer创建2台服务器的故障转移群集的图文教程》本文主要介绍了在WindowsServer系统上创建一个包含两台成员服务器的故障转移群集,文中通过图文示例介绍的非常详细,对大家的... 目录一、 准备条件二、在ServerB安装故障转移群集三、在ServerC安装故障转移群集,操作与Ser

使用Python实现在Word中添加或删除超链接

《使用Python实现在Word中添加或删除超链接》在Word文档中,超链接是一种将文本或图像连接到其他文档、网页或同一文档中不同部分的功能,本文将为大家介绍一下Python如何实现在Word中添加或... 在Word文档中,超链接是一种将文本或图像连接到其他文档、网页或同一文档中不同部分的功能。通过添加超