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

相关文章

Python实现批量CSV转Excel的高性能处理方案

《Python实现批量CSV转Excel的高性能处理方案》在日常办公中,我们经常需要将CSV格式的数据转换为Excel文件,本文将介绍一个基于Python的高性能解决方案,感兴趣的小伙伴可以跟随小编一... 目录一、场景需求二、技术方案三、核心代码四、批量处理方案五、性能优化六、使用示例完整代码七、小结一、

C#使用Spire.Doc for .NET实现HTML转Word的高效方案

《C#使用Spire.Docfor.NET实现HTML转Word的高效方案》在Web开发中,HTML内容的生成与处理是高频需求,然而,当用户需要将HTML页面或动态生成的HTML字符串转换为Wor... 目录引言一、html转Word的典型场景与挑战二、用 Spire.Doc 实现 HTML 转 Word1

C#实现一键批量合并PDF文档

《C#实现一键批量合并PDF文档》这篇文章主要为大家详细介绍了如何使用C#实现一键批量合并PDF文档功能,文中的示例代码简洁易懂,感兴趣的小伙伴可以跟随小编一起学习一下... 目录前言效果展示功能实现1、添加文件2、文件分组(书签)3、定义页码范围4、自定义显示5、定义页面尺寸6、PDF批量合并7、其他方法

Java实现在Word文档中添加文本水印和图片水印的操作指南

《Java实现在Word文档中添加文本水印和图片水印的操作指南》在当今数字时代,文档的自动化处理与安全防护变得尤为重要,无论是为了保护版权、推广品牌,还是为了在文档中加入特定的标识,为Word文档添加... 目录引言Spire.Doc for Java:高效Word文档处理的利器代码实战:使用Java为Wo

使用Python实现Word文档的自动化对比方案

《使用Python实现Word文档的自动化对比方案》我们经常需要比较两个Word文档的版本差异,无论是合同修订、论文修改还是代码文档更新,人工比对不仅效率低下,还容易遗漏关键改动,下面通过一个实际案例... 目录引言一、使用python-docx库解析文档结构二、使用difflib进行差异比对三、高级对比方

Python自动化处理PDF文档的操作完整指南

《Python自动化处理PDF文档的操作完整指南》在办公自动化中,PDF文档处理是一项常见需求,本文将介绍如何使用Python实现PDF文档的自动化处理,感兴趣的小伙伴可以跟随小编一起学习一下... 目录使用pymupdf读写PDF文件基本概念安装pymupdf提取文本内容提取图像添加水印使用pdfplum

Python从Word文档中提取图片并生成PPT的操作代码

《Python从Word文档中提取图片并生成PPT的操作代码》在日常办公场景中,我们经常需要从Word文档中提取图片,并将这些图片整理到PowerPoint幻灯片中,手动完成这一任务既耗时又容易出错,... 目录引言背景与需求解决方案概述代码解析代码核心逻辑说明总结引言在日常办公场景中,我们经常需要从 W

Spring创建Bean的八种主要方式详解

《Spring创建Bean的八种主要方式详解》Spring(尤其是SpringBoot)提供了多种方式来让容器创建和管理Bean,@Component、@Configuration+@Bean、@En... 目录引言一、Spring 创建 Bean 的 8 种主要方式1. @Component 及其衍生注解

C#高效实现Word文档内容查找与替换的6种方法

《C#高效实现Word文档内容查找与替换的6种方法》在日常文档处理工作中,尤其是面对大型Word文档时,手动查找、替换文本往往既耗时又容易出错,本文整理了C#查找与替换Word内容的6种方法,大家可以... 目录环境准备方法一:查找文本并替换为新文本方法二:使用正则表达式查找并替换文本方法三:将文本替换为图

C#使用Spire.XLS快速生成多表格Excel文件

《C#使用Spire.XLS快速生成多表格Excel文件》在日常开发中,我们经常需要将业务数据导出为结构清晰的Excel文件,本文将手把手教你使用Spire.XLS这个强大的.NET组件,只需几行C#... 目录一、Spire.XLS核心优势清单1.1 性能碾压:从3秒到0.5秒的质变1.2 批量操作的优雅