代码之家  ›  专栏  ›  技术社区  ›  stephan

为MS Office用户报告图表和数据

  •  2
  • stephan  · 技术社区  · 17 年前

    我们有很多数据和一些图表表示一个逻辑项。图表和数据存储在各种文件中。因此,大多数用户可以轻松地访问和重用其应用程序中的信息。

    然而,这并不完全是存储数据的好方法。除其他原因外,图表属于某些数据,图表和数据具有一些未反映在文件系统中的元信息,有许多文件等。

    理想情况下,我们需要

    1. 一个大的“文件”,可以存储所有 信息(文本、数据和图表)

    2. “文件”是人类可读的, 携带方便 非技术用户

    3. 允许典型的Office应用程序 像MS Word或MS Excel提取 文本、数据和图表很容易。

    4. 重量轻,容易解决。快的 脏就足够了。不多 用户。

    我很乐意使用一些脚本语言(如python)来生成“文件”、第三方工具(与beer一样理想情况下是免费的)以及在典型的以Windows为中心的办公计算机上找到的所有内容。

    我们目前思考的一些想法:

    • 使用vb或pywin32编写MS Word或Excel脚本

    • 创建HTML并将其发布到RESTful Web服务器上

    你能把上面的想法扩展一下吗?你还有其他想法吗?我们应该考虑什么?

    2 回复  |  直到 17 年前
        1
  •  2
  •   Ben Dadsetan    17 年前

    我只能同意Reef提出的一般概念:

    • 您几乎肯定会喜欢数据库中的数据而不是单个大文件中的数据。

    • 您不必担心数据不会被用户直接操纵,因为正如Reef所提到的,它只会出错。你会为它的丑陋而感到惊讶

    关于MS Office集成工具的使用,我不同意Reef。您可以很容易地创建一个可以从MS Office套件访问的ActiveX服务器(如果愿意,可以使用python)。只要您有一个允许某种文件共享的可靠基础结构,就可以使用该共享区域来保存代码。我猜Reef所说的混乱主要是为了让用户版本的提取/导入代码保持同步。如果您不使用某种共享存储库(简单的共享文件夹),或者如果您的基础结构经常出现故障,导致共享文件夹不可用,那么您将非常痛苦。请注意,如果您没有适当的工具,但与许多用户打交道,那么也会有些痛苦:ActiveX服务器最好在每台计算机上注册。

    所以…我只是说微软的办公集成是非常可行的。但是,这是否是最好的事情是另一回事。我坚信,如果你建立一个能为用户处理数据的网站,你会更好地为用户服务。然而,这种工具几乎肯定会成为一个“正在进行的项目”。通常,即使作为一个“正在进行的项目”,用户节省的时间仍然可以使它值得。但是有时候,战略上,你想给你的用户一个更差的体验来控制项目成本。在这种情况下,我提到的ActiveX服务器可以是您想要的。

        2
  •  1
  •   Paweł Polewicz    17 年前

    您应该使用数据库,而不是使用一个大文件。是的,如果愿意,您可以在数据库中存储各种类型的文件,如gifs。

    非技术用户无法读取或访问该文件,但这很好。

    数据库将有一个非技术用户用来插入、更新和获取数据的网站。他们将能够在页面上显示它或将其导出到csv(甚至是xls——这并不难,我见过一些csv->xls转换器)。您可以研究一些开放的标准文档格式,我认为用它输出数据应该很容易。不要尝试以“doc”格式输出(但可以尝试“docx”)。您应该能够轻松地教用户如何将数据导出到CSV并将其上载到站点,或者他们可以使用Web界面插入数据(如果愿意)。

    如果你允许你的用户处理原始数据,他们会破坏它(我已经尝试过了,你不知道这些人是怎么做到的)。防止这种情况发生的唯一方法是创建一个Web窗体,它只允许它们执行您确切知道它们应该如何执行的某些操作。

    数据库+网页解决方案是很好的解决方案。使用vb或pywin32编写msoffice脚本会给您带来很多我无法想象的麻烦。

    您可以使用gnuplot或其他一些图形库进行绘制(实现起来非常简单,它为您完成了所有的工作)。

    恐怕“快”而肮脏的解决方案很诱人,但我只能说一件事:它不会快。几周后,你会发现使用msoffice脚本进行黑客攻击是混乱的、错误的和不可靠的,非技术人员会讨厌它,并说在其他公司,他们以前有一个简单的网页面板可以做到这一点。然后您会发现,您将无法询问有关脚本的问题,因为现在每个人都使用Web界面,因为它们很容易实现和维护。

    这不是一个小项目,是一个中等大小的项目,你在写的时候需要记住这一点。这需要一些时间来完成和测试它,并且您必须添加新的功能,因为非技术人员将开始使用它。我认识一些充满激情的PHP青少年,他们可以在一周内编写这个面板,但据我所知,您有一些更好的资源,所以我希望您能提供一个真正可靠的、模块化的、可扩展的解决方案,具有良好的可用性和快乐的用户。
    祝你好运!