区分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将DOCX文档解析为Markdown文档的代码实现

《使用Java将DOCX文档解析为Markdown文档的代码实现》在现代文档处理中,Markdown(MD)因其简洁的语法和良好的可读性,逐渐成为开发者、技术写作者和内容创作者的首选格式,然而,许多文... 目录引言1. 工具和库介绍2. 安装依赖库3. 使用Apache POI解析DOCX文档4. 将解析

使用Python将JSON,XML和YAML数据写入Excel文件

《使用Python将JSON,XML和YAML数据写入Excel文件》JSON、XML和YAML作为主流结构化数据格式,因其层次化表达能力和跨平台兼容性,已成为系统间数据交换的通用载体,本文将介绍如何... 目录如何使用python写入数据到Excel工作表用Python导入jsON数据到Excel工作表用

基于Python实现高效PPT转图片工具

《基于Python实现高效PPT转图片工具》在日常工作中,PPT是我们常用的演示工具,但有时候我们需要将PPT的内容提取为图片格式以便于展示或保存,所以本文将用Python实现PPT转PNG工具,希望... 目录1. 概述2. 功能使用2.1 安装依赖2.2 使用步骤2.3 代码实现2.4 GUI界面3.效

Java利用docx4j+Freemarker生成word文档

《Java利用docx4j+Freemarker生成word文档》这篇文章主要为大家详细介绍了Java如何利用docx4j+Freemarker生成word文档,文中的示例代码讲解详细,感兴趣的小伙伴... 目录技术方案maven依赖创建模板文件实现代码技术方案Java 1.8 + docx4j + Fr

vue使用docxtemplater导出word

《vue使用docxtemplater导出word》docxtemplater是一种邮件合并工具,以编程方式使用并处理条件、循环,并且可以扩展以插入任何内容,下面我们来看看如何使用docxtempl... 目录docxtemplatervue使用docxtemplater导出word安装常用语法 封装导出方

使用C#代码在PDF文档中添加、删除和替换图片

《使用C#代码在PDF文档中添加、删除和替换图片》在当今数字化文档处理场景中,动态操作PDF文档中的图像已成为企业级应用开发的核心需求之一,本文将介绍如何在.NET平台使用C#代码在PDF文档中添加、... 目录引言用C#添加图片到PDF文档用C#删除PDF文档中的图片用C#替换PDF文档中的图片引言在当

详解C#如何提取PDF文档中的图片

《详解C#如何提取PDF文档中的图片》提取图片可以将这些图像资源进行单独保存,方便后续在不同的项目中使用,下面我们就来看看如何使用C#通过代码从PDF文档中提取图片吧... 当 PDF 文件中包含有价值的图片,如艺术画作、设计素材、报告图表等,提取图片可以将这些图像资源进行单独保存,方便后续在不同的项目中使

使用Sentinel自定义返回和实现区分来源方式

《使用Sentinel自定义返回和实现区分来源方式》:本文主要介绍使用Sentinel自定义返回和实现区分来源方式,具有很好的参考价值,希望对大家有所帮助,如有错误或未考虑完全的地方,望不吝赐教... 目录Sentinel自定义返回和实现区分来源1. 自定义错误返回2. 实现区分来源总结Sentinel自定

java中使用POI生成Excel并导出过程

《java中使用POI生成Excel并导出过程》:本文主要介绍java中使用POI生成Excel并导出过程,具有很好的参考价值,希望对大家有所帮助,如有错误或未考虑完全的地方,望不吝赐教... 目录需求说明及实现方式需求完成通用代码版本1版本2结果展示type参数为atype参数为b总结注:本文章中代码均为

idea中创建新类时自动添加注释的实现

《idea中创建新类时自动添加注释的实现》在每次使用idea创建一个新类时,过了一段时间发现看不懂这个类是用来干嘛的,为了解决这个问题,我们可以设置在创建一个新类时自动添加注释,帮助我们理解这个类的用... 目录前言:详细操作:步骤一:点击上方的 文件(File),点击&nbmyHIgsp;设置(Setti