在Excel中编写一个Web应用程序? 为什么不?

在你开始燃烧之前,我要告诉你,我试图说服自己,这是一个坏主意。

基本上,我正在尝试创build一个具有一些基本会计function的网站。 我的朋友,一个只知道excel的顾问问,这是不是一个Excel电子表格而不是一个Web界面。

我发现自己在想,为什么excel不是这种情况下更好的工具? 它具有web2.0应用程序所具有的所有工具(脚本,访问数据库,基本格式),并用于会计。 你基本上可以使用excel编写一个程序,从SQL数据库中提取数据,填充一些单元格,然后使用公式。

是否有使用Excel的先例,因为使用浏览器来制作ajax-y web2应用程序?

为什么这是一个坏主意?

更新:只是为了澄清我的意思是更多的“修辞”的讨论。 我不确定为什么其余的消息没有澄清…

那么,如果你在Excel中做到这一点,那么它不会是一个真正的Web应用程序。 这将是一个Excel应用程序。

不过这不是件坏事。 如果在Excel中构build应用程序更有意义,那就去做吧。

您在Excel中执行的问题与使用任何桌面与Web应用程序时遇到的问题是一样的。 例如,你如何处理部署新版本的应用程序? 你如何处理新(或旧版本)Excel的应用程序更新? 等等

ETA:

如果您想避免Excel VBA的繁琐和pipe理桌面应用程序的麻烦,您可能需要查看Google Spreadsheets API 。 您可以使用它来即时创build/更新Google文档电子表格,包括公式以及许多其他电子表格的优点。 使用Web应用程序和Google电子表格的混合可能会给你两全其美,取决于你需要做什么。

在Excel-VBA编程几年后,我可以给你不要这样做的最佳答案:

Excel-VBA是越野车! 这可能是微软公司生产的错误最多的应用程序。 对于某些任务来说,这很好,但是迫使它去做一个从来没有打算的工作会导致麻烦。

我有一些电子表格可以做类似的事情(比尔从来没有打算过的事情),而且毫无例外地,他们在失败的边缘徘徊,往往只是一丝一毫的挑衅。

当然,你可以做到,但头痛是不值得的。

Excel并不意味着这样使用,所以这将是痛苦的。

两个更好的网页电子表格集成的想法:

  • 看看Resolver One ,一个可编程的Excel兼容的电子表格和一个集成的Web服务器。
  • 使用Google文档电子表格。 有一个API以编程方式与他们进行交互。

这不是一个坏主意,但确实有一些限制。 如果部署对您来说不是问题,并且您不需要“通用”访问应用程序,那么您的解决scheme可能会为您节省一些时间。 一个Web应用程序肯定是一个更优雅的方法,特别是如果你想公开的软件。

networking固有地基于HTML,并添加到数据库,CSS和服务器端语言和JavaScript(可能还有其他)。 和大多数事情一样,你应该使用正确的工具来完成这项工作。 如果你想要一个网站,那么你应该使用工具来创build一个网站。

Excel并不意味着要制作网站,强行这样做可能会导致更多的挫折,而不是幸福。

那么,你将在服务器端运行它,你可能会遇到许可和性能问题。

如果您将.xls提供给客户,那么您需要为所有客户提供Excel或兼容的东西。 但是你也失去了对你的“网站”的控制 – 如果你有本地需要的一切,访问的目的是什么?

那么,SQL语句将在客户端? 这很less是一个好主意。

出于同样的原因,用MS Access编写graphics编辑器是不好的,或者使用Powerpoint编写MMORPG是不好的:)

我也会说,一旦你停止使用浏览器作为客户端,它不再是一个“networking应用程序” – 你只是在谈论一个Excel工作表,通过HTTP获取其数据。

对所有说“excel应用程序不是networking应用程序”的人+1。

但是…如果要将电子表格隐喻用于Web应用程序的服务器端计算,或者要从服务器端代码访问Excel附带的财务函数库,则可以使用Excel Services 。 它通过SOAP公开,可互操作,可从任何具有SOAPfunction的平台调用。

这是服务器function。 它实际上并没有在服务器上加载Excel,而是函数的非GUI运行时。

我认为使用Excel作为浏览器是不好的主意,但我认为更好的主意是在桌面应用程序中使用Excel控制。

这样你可以控制sql和连接。 你可以随时保存数据。 你也可以实现一些更新机制。 应用程序将更安全,更难以破解。

我想当你尝试连接到外部资源时,Excel冻结,这样你就可以控制一切。

你是否开始获得这个应用程序的用户需求? 这听起来不像他们想要一个网站开始。 听起来他们想要一个带有macros的Excel电子表格。