Excel被金山WPS颠覆?飞书用户嫌弃,eversheet“拿捏”!

不知道最近大家有没有注意到——打开 WPS,新建文件时多了个陌生选项:「多维表格」

点进去的一瞬间,我的第一反应是:这不就是个“仿飞书”的轻应用吗?

WPS-多维表格

可仔细体验了几天后,发现它背后的野心,比我想象的大得多

这次,WPS想做的不只是“表格”

过去我们都把表格当成一个工具,用来做预算、算数据、统计表。

可如今,这个看起来最“老派”的办公载体,居然被推上了风口。

不夸张地说,现在很多科技公司早早就都在抢这一块。

腾讯、字节、阿里

腾讯旗下的企微智能表格、阿里巴巴的钉钉“AI表格”,字节跳动的飞书“多维表格”......而金山WPS,近日也终于拿出了自己的答卷。

为什么大厂都要卷这个?

原因很现实:表格是所有信息的起点

图源网络,侵删

先说说WPS多维表格体验感

WPS多维表格确实有新意。它把功能插件化了——字段插件、自动化插件、可视化插件、数据连接器……而且在新建界面底下还内置了上千套场景模板,从项目管理到OKR全都有。

听起来很强大,但实际用惯了Excel的我反而觉得“不顺手”。

图源某书,侵删

网上的反馈也挺一致——统计表太死板、字段不能自由定义、汇总逻辑怪怪的、数据一多就卡、附件上传还有限制。还有用户用了之后还是回到飞书

其实事实是,它更像是数据库,而不是大家熟悉的Excel。

有专家评价得很到位:“WPS多维表格与传统低代码不同,它更像是一种结构化数据库。

这句话没错,但也说明了它的局限——数据库擅长“存”和“算”,而业务系统要的是“跑流程”和“易上手”

这就像为什么操作系统不会把数据库写进去一样,各有边界

那飞书多维表格呢?

飞书的多维表格更偏向团队协作,它强调“一个表搞定项目管理”,数据实时同步、自动汇总,适合中小团队的协同场景。

而WPS多维表格更想做成办公生态的统一入口,把文档、AI、表格、演示都整合在一起。

两者的共同点是,都在让“表格”变得更像数据库——逻辑更严谨,结构更复杂。

但问题也在这里:企业核心业务不是靠表格多漂亮,而是看能不能承载复杂流程、权限和逻辑。而这,正是很多企业在用到一定规模后会遇到的瓶颈。

说实话,当我看到WPS这次发布会时,第一个想到的不是微软或谷歌,而是国产的eversheet

它基于自主研发的电子表格内核,操作方式与Excel几乎一致,但底层内置了MySQL数据库,并可连接其他数据库。

也就是说,它既有表格的灵活,又有数据库的可靠。更关键的是,它支持中文逻辑的“表格编程”,不需要写代码,就能搭出业务系统。

比如你想做生产排程、设备点检、库存预警、移动APP填报,这些在eversheet里都能通过画表格的方式实现。

同时支持私有化、公有云和混合部署,真正能跑在企业核心业务层。

恒逸石化、中铁十六局、许继集团、潞安化工、首钢集团等大型制造企业都已经在用它搭建内部系统。

可以说,飞书和WPS在做“协同工具”,而eversheet在做“企业业务操作系统”。

写在最后

未来几年,企业软件的竞争,很可能不在功能,而在“谁更懂业务逻辑”。因为企业不是缺软件,而是缺一个能真正贴合自己流程的系统。

这场表格之战,才刚刚开始。你更看好谁?是飞书的协同力、WPS的整合力,还是eversheet那种“能搭业务系统”的落地力?

最后,你有什么补充或者修正的地方?

写这些内容花了不少心思,如果对你有帮助和启发,就是我继续更新的动力。

文 | eamon

<think> 我们参考了引用[2]和[3],其中提到了通过注册表检测Office和WPS安装情况的方法。但用户要求的是检测具体版本,因此我们需要扩展这个方法。 对于Excel(Microsoft Office): - 注册表路径:HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows\CurrentVersion\App Paths\Excel.exe 或者通过Office的注册表项,如HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Office\XX.0\Excel\InstallRoot(其中XX代表版本号,如12.0代表2007,15.0代表2013等) 对于WPS表格: - 注册表路径:HKEY_LOCAL_MACHINE\SOFTWARE\Kingsoft\Office\XX.0\et\InstallRoot(其中XX代表WPS的版本号,如6.0、9.0等) 但是,要获取具体版本号,我们可以通过读取安装路径下的可执行文件的版本信息。 步骤: 1. 通过注册表找到安装路径。 2. 在该路径下找到主程序(Excel.exe 或 et.exe)。 3. 读取该文件的版本信息(通过FileVersionInfo)。 另外,我们还可以从注册表中获取版本信息,因为每个Office版本在注册表中都有一个特定的子键(如16.0对应Office 2016/2019/365),而WPS的版本号可以在Kingsoft的注册表项中直接找到。 具体方法: 一、检测Microsoft Excel版本: 1. 尝试从高版本到低版本扫描注册表(因为高版本更常见),例如从16.0(Office 2016及以上)开始,然后15.0(Office 2013)、14.0(Office 2010)、12.0(Office 2007)、11.0(Office 2003)。 2. 在每个版本键下的InstallRoot中获取Path值,然后检查该路径下是否有Excel.exe。 3. 如果找到,则读取该Excel.exe的版本信息。 二、检测WPS表格版本: 1. 查找注册表路径:HKEY_LOCAL_MACHINE\SOFTWARE\Kingsoft\Office 2. 在该键下可能有多个版本(如6.0、9.0等),我们需要遍历子键。 3. 在每个子键下的et\InstallRoot(或common下的InstallRoot)中获取安装路径,然后检查et.exe是否存在。 4. 如果存在,则读取et.exe的版本信息。 注意:64位系统上,32位应用程序的注册表可能在Wow6432Node下,所以我们需要同时检查两个位置。 下面提供一个C#示例方法,用于获取ExcelWPS的具体版本信息(包括主版本号、文件版本等)。由于用户要求的是方法,我们将分步骤描述,并给出关键代码。 步骤: 1. 检测Excel安装: - 注册表路径(64位系统): - 64位Office:HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Office\XX.0\Excel\InstallRoot - 32位Office(在64位系统):HKEY_LOCAL_MACHINE\SOFTWARE\Wow6432Node\Microsoft\Office\XX.0\Excel\InstallRoot - 版本号与Office版本的对应关系: 16.0 -> Office 2016及以上 15.0 -> Office 2013 14.0 -> Office 2010 12.0 -> Office 2007 11.0 -> Office 2003 2. 检测WPS安装: - 注册表路径: - 64位系统:HKEY_LOCAL_MACHINE\SOFTWARE\Wow6432Node\Kingsoft\Office (WPS通常是32位) - 32位系统:HKEY_LOCAL_MACHINE\SOFTWARE\Kingsoft\Office - 遍历Kingsoft\Office下的子键(每个子键代表一个主要版本,如6.0、9.0等),然后在子键下找到et的InstallRoot(或者common下的InstallRoot,然后加上"et.exe")。 3. 读取文件版本信息: - 使用System.Diagnostics.FileVersionInfo 示例代码(C#): ```csharp using Microsoft.Win32; using System; using System.Diagnostics; using System.IO; public class OfficeDetector { public static void DetectExcelAndWPS() { // 检测Microsoft Excel DetectExcel(); // 检测WPS表格 DetectWPS(); } private static void DetectExcel() { // 按版本从高到低检查 string[] excelVersions = { "16.0", "15.0", "14.0", "12.0", "11.0" }; string[] registryBases = { @"SOFTWARE\Microsoft\Office", // 64位系统上的32位Office或32位系统上的Office @"SOFTWARE\Wow6432Node\Microsoft\Office" // 64位系统上的32位Office }; foreach (var basePath in registryBases) { foreach (var version in excelVersions) { string path = $@"{basePath}\{version}\Excel\InstallRoot"; using (RegistryKey key = Registry.LocalMachine.OpenSubKey(path)) { if (key != null) { string installPath = key.GetValue("Path") as string; if (!string.IsNullOrEmpty(installPath)) { string exePath = Path.Combine(installPath, "EXCEL.EXE"); if (File.Exists(exePath)) { FileVersionInfo versionInfo = FileVersionInfo.GetVersionInfo(exePath); Console.WriteLine($"Microsoft Excel {version} 找到: {exePath}"); Console.WriteLine($"文件版本: {versionInfo.FileVersion}"); Console.WriteLine($"产品版本: {versionInfo.ProductVersion}"); return; // 找到一个就返回,因为通常只安装一个版本 } } } } } } Console.WriteLine("未找到Microsoft Excel"); } private static void DetectWPS() { string[] registryBases = { @"SOFTWARE\Kingsoft\Office", // 32位系统或64位系统上的32位WPS @"SOFTWARE\Wow6432Node\Kingsoft\Office" // 64位系统上的32位WPS }; foreach (var basePath in registryBases) { using (RegistryKey officeKey = Registry.LocalMachine.OpenSubKey(basePath)) { if (officeKey != null) { // 遍历所有子键(每个版本) foreach (string versionKey in officeKey.GetSubKeyNames()) { // 尝试两种路径:1. 通过et子键 2. 通过common然后组合路径 string etPath = $@"{basePath}\{versionKey}\et\InstallRoot"; using (RegistryKey etRoot = Registry.LocalMachine.OpenSubKey(etPath)) { if (etRoot != null) { string installPath = etRoot.GetValue("Path") as string; if (!string.IsNullOrEmpty(installPath)) { string exePath = Path.Combine(installPath, "et.exe"); if (File.Exists(exePath)) { FileVersionInfo versionInfo = FileVersionInfo.GetVersionInfo(exePath); Console.WriteLine($"WPS表格 {versionKey} 找到: {exePath}"); Console.WriteLine($"文件版本: {versionInfo.FileVersion}"); Console.WriteLine($"产品版本: {versionInfo.ProductVersion}"); return; // 找到一个就返回 } } } } // 如果et子键没找到,尝试common下的InstallRoot,然后加上et.exe string commonPath = $@"{basePath}\{versionKey}\common"; using (RegistryKey commonRoot = Registry.LocalMachine.OpenSubKey(commonPath)) { if (commonRoot != null) { string installRoot = commonRoot.GetValue("InstallRoot") as string; if (!string.IsNullOrEmpty(installRoot)) { string exePath = Path.Combine(installRoot, "office6", "et.exe"); if (File.Exists(exePath)) { FileVersionInfo versionInfo = FileVersionInfo.GetVersionInfo(exePath); Console.WriteLine($"WPS表格 {versionKey} 找到: {exePath}"); Console.WriteLine($"文件版本: {versionInfo.FileVersion}"); Console.WriteLine($"产品版本: {versionInfo.ProductVersion}"); return; // 找到一个就返回 } } } } } } } } Console.WriteLine("未找到WPS表格"); } } ``` 注意:上述代码中,我们假设每个电脑只安装一个版本的Excel和一个版本的WPS。如果存在多个版本,可以根据需要调整。 另外,对于WPS,不同版本的路径可能有所不同,例如早期版本可能是`office6`,新版本可能是`office9`,所以我们通过注册表中的InstallRoot来获取路径。 如果用户没有编程需求,我们也可以手动检查: - 对于Excel:打开Excel,点击“文件”->“帐户”,在“关于Excel”中查看版本。 - 对于WPS:打开WPS表格,点击“帮助”->“关于WPS表格”查看版本。 但用户要求的是系统级检测方法,所以我们提供了注册表和文件检查的方法。 相关问题: 1. 如何通过注册表检测其他办公软件(如LibreOffice)的安装? 2. 如何获取已安装软件的完整版本号(包括补丁号)? 3. 当系统中同时安装多个版本的Office时,如何确定默认启动的版本? 4. 如何通过命令行获取已安装软件的版本信息? </think> ### 检测 ExcelWPS 具体版本的方法 #### 一、通过注册表检测(推荐) **检测原理**: 两种办公软件在安装时都会在注册表写入版本信息,通过查询特定注册表路径可获取精确版本号[^2][^3]。 ##### 1. Microsoft Excel 版本检测 ```csharp // 检测 Excel 版本 public string GetExcelVersion() { // 支持的版本:16.0(2016+), 15.0(2013), 14.0(2010), 12.0(2007) string[] versions = { "16.0", "15.0", "14.0", "12.0" }; foreach (var ver in versions) { string path = $@"SOFTWARE\Microsoft\Office\{ver}\Excel\InstallRoot"; using (RegistryKey key = Registry.LocalMachine.OpenSubKey(path)) { if (key != null) { // 获取安装路径并验证 string installPath = key.GetValue("Path")?.ToString(); if (File.Exists(Path.Combine(installPath, "EXCEL.EXE"))) { // 获取详细版本信息 FileVersionInfo info = FileVersionInfo.GetVersionInfo( Path.Combine(installPath, "EXCEL.EXE") ); return $"Excel {ver} ({info.FileVersion})"; } } } } return "未安装Excel"; } ``` ##### 2. WPS 表格版本检测 ```csharp // 检测 WPS 版本 public string GetWPSVersion() { // WPS 注册表路径 string[] paths = { @"SOFTWARE\Kingsoft\Office", @"SOFTWARE\Wow6432Node\Kingsoft\Office" // 64位系统兼容 }; foreach (var regPath in paths) { using (RegistryKey key = Registry.LocalMachine.OpenSubKey(regPath)) { if (key != null) { // 遍历所有安装版本 foreach (string subKey in key.GetSubKeyNames()) { using (var verKey = key.OpenSubKey(Path.Combine(subKey, "common"))) { if (verKey != null) { string installRoot = verKey.GetValue("InstallRoot")?.ToString(); if (!string.IsNullOrEmpty(installRoot)) { string etPath = Path.Combine(installRoot, "office6", "et.exe"); if (File.Exists(etPath)) { FileVersionInfo info = FileVersionInfo.GetVersionInfo(etPath); return $"WPS {subKey} ({info.FileVersion})"; } } } } } } } } return "未安装WPS"; } ``` #### 二、通过文件系统检测 **实现原理**: 直接检查默认安装路径下的可执行文件版本信息[^3]。 ```powershell # Excel 版本检测 $excelPaths = @( "${env:ProgramFiles}\Microsoft Office\root\Office16", "${env:ProgramFiles(x86)}\Microsoft Office\root\Office16", "${env:ProgramFiles}\Microsoft Office\Office15", "${env:ProgramFiles(x86)}\Microsoft Office\Office14" ) # WPS 版本检测 $wpsPaths = @( "${env:ProgramFiles}\Kingsoft\WPS Office", "${env:ProgramFiles(x86)}\Kingsoft\WPS Office" ) foreach ($path in $excelPaths) { $exePath = Join-Path $path "EXCEL.EXE" if (Test-Path $exePath) { $version = (Get-Item $exePath).VersionInfo.FileVersion Write-Host "检测到 Excel: $version" } } foreach ($path in $wpsPaths) { $etPath = Join-Path $path "office6\et.exe" if (Test-Path $etPath) { $version = (Get-Item $etPath).VersionInfo.FileVersion Write-Host "检测到 WPS: $version" } } ``` #### 三、命令行快速检测 ```batch :: Excel 版本检测 reg query "HKLM\SOFTWARE\Microsoft\Windows\CurrentVersion\App Paths\excel.exe" /v Path :: WPS 版本检测 reg query "HKLM\SOFTWARE\Kingsoft\Office" /s | findstr "InstallRoot" ``` #### 四、版本检测结果示例 | 软件 | 注册表路径示例 | 版本标识 | |--------|----------------------------------------|----------| | Excel | `HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Office\16.0` | 16.0.xxxx | | WPS | `HKEY_LOCAL_MACHINE\SOFTWARE\Kingsoft\Office\11.1` | 11.1.0.xxxx | > **注意事项**: > 1. 64位系统需同时检查`SOFTWARE`和`SOFTWARE\Wow6432Node`路径 > 2. 优先使用注册表查询,文件检测作为备用方案 > 3. 管理员权限运行检测程序获取完整信息[^3]
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值