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

相关文章

AI一键生成 PPT

AI一键生成 PPT 操作步骤 作为一名打工人,是不是经常需要制作各种PPT来分享我的生活和想法。但是,你们知道,有时候灵感来了,时间却不够用了!😩直到我发现了Kimi AI——一个能够自动生成PPT的神奇助手!🌟 什么是Kimi? 一款月之暗面科技有限公司开发的AI办公工具,帮助用户快速生成高质量的演示文稿。 无论你是职场人士、学生还是教师,Kimi都能够为你的办公文

活用c4d官方开发文档查询代码

当你问AI助手比如豆包,如何用python禁止掉xpresso标签时候,它会提示到 这时候要用到两个东西。https://developers.maxon.net/论坛搜索和开发文档 比如这里我就在官方找到正确的id描述 然后我就把参数标签换过来

【Python编程】Linux创建虚拟环境并配置与notebook相连接

1.创建 使用 venv 创建虚拟环境。例如,在当前目录下创建一个名为 myenv 的虚拟环境: python3 -m venv myenv 2.激活 激活虚拟环境使其成为当前终端会话的活动环境。运行: source myenv/bin/activate 3.与notebook连接 在虚拟环境中,使用 pip 安装 Jupyter 和 ipykernel: pip instal

在cscode中通过maven创建java项目

在cscode中创建java项目 可以通过博客完成maven的导入 建立maven项目 使用快捷键 Ctrl + Shift + P 建立一个 Maven 项目 1 Ctrl + Shift + P 打开输入框2 输入 "> java create"3 选择 maven4 选择 No Archetype5 输入 域名6 输入项目名称7 建立一个文件目录存放项目,文件名一般为项目名8 确定

Java 创建图形用户界面(GUI)入门指南(Swing库 JFrame 类)概述

概述 基本概念 Java Swing 的架构 Java Swing 是一个为 Java 设计的 GUI 工具包,是 JAVA 基础类的一部分,基于 Java AWT 构建,提供了一系列轻量级、可定制的图形用户界面(GUI)组件。 与 AWT 相比,Swing 提供了许多比 AWT 更好的屏幕显示元素,更加灵活和可定制,具有更好的跨平台性能。 组件和容器 Java Swing 提供了许多

计算机毕业设计 大学志愿填报系统 Java+SpringBoot+Vue 前后端分离 文档报告 代码讲解 安装调试

🍊作者:计算机编程-吉哥 🍊简介:专业从事JavaWeb程序开发,微信小程序开发,定制化项目、 源码、代码讲解、文档撰写、ppt制作。做自己喜欢的事,生活就是快乐的。 🍊心愿:点赞 👍 收藏 ⭐评论 📝 🍅 文末获取源码联系 👇🏻 精彩专栏推荐订阅 👇🏻 不然下次找不到哟~Java毕业设计项目~热门选题推荐《1000套》 目录 1.技术选型 2.开发工具 3.功能

顺序表之创建,判满,插入,输出

文章目录 🍊自我介绍🍊创建一个空的顺序表,为结构体在堆区分配空间🍊插入数据🍊输出数据🍊判断顺序表是否满了,满了返回值1,否则返回0🍊main函数 你的点赞评论就是对博主最大的鼓励 当然喜欢的小伙伴可以:点赞+关注+评论+收藏(一键四连)哦~ 🍊自我介绍   Hello,大家好,我是小珑也要变强(也是小珑),我是易编程·终身成长社群的一名“创始团队·嘉宾”

Maven创建项目中的groupId, artifactId, 和 version的意思

文章目录 groupIdartifactIdversionname groupId 定义:groupId 是 Maven 项目坐标的第一个部分,它通常表示项目的组织或公司的域名反转写法。例如,如果你为公司 example.com 开发软件,groupId 可能是 com.example。作用:groupId 被用来组织和分组相关的 Maven artifacts,这样可以避免

批处理以当前时间为文件名创建文件

批处理以当前时间为文件名创建文件 批处理创建空文件 有时候,需要创建以当前时间命名的文件,手动输入当然可以,但是有更省心的方法吗? 假设我是 windows 操作系统,打开命令行。 输入以下命令试试: echo %date:~0,4%_%date:~5,2%_%date:~8,2%_%time:~0,2%_%time:~3,2%_%time:~6,2% 输出类似: 2019_06

ORACLE 11g 创建数据库时 Enterprise Manager配置失败的解决办法 无法打开OEM的解决办法

在win7 64位系统下安装oracle11g,在使用Database configuration Assistant创建数据库时,在创建到85%的时候报错,错误如下: 解决办法: 在listener.ora中增加对BlueAeri-PC或ip地址的侦听,具体步骤如下: 1.启动Net Manager,在“监听程序”--Listener下添加一个地址,主机名写计