如何在数百个 Excel 报表之上构建 Web 界面



我在Excel财务报告上有一个大型文档集合。这些报告位于共享云端硬盘上,并非所有用户都可以访问该云端硬盘。我想构建某种形式的基本Web界面,具有搜索功能,以便用户可以看到数据。

我的机器上运行了可以连接到文件的 jupyter 笔记本。我的问题是:
1.如何构建一个Web界面,用户可以在其中搜索将在jupyter笔记本中触发功能的客户。该功能将带回客户数据并显示在浏览器上。

  1. 既然目的主要是做搜索而不是任何计算,我应该完全忘记python而看看弹性搜索吗?如何开始使用基本的弹性搜索查询?还是像卡桑德拉这样的东西更好?

我需要搜索遍历多个 excel 文件并带回所有结果。因此,如果我们搜索客户"ABC",它将为我提供过去 12 个月的每月统计数据(每个月都存储在单独的 excel 文件中(。

为了使 excel 数据可搜索,您需要某种脚本来读取这些 excel 文件,然后使用 elasticsearch Bulk API 为这些 Excel 工作表编制索引。既然你提到你正在使用python,你也可以使用elasticsearch-py来实现这个目的,并使用他们公开的API(批量助手(

根据您如何将这些 excel 文件索引到 elasticsearch 文档中,您可能会使用query_string或其他东西进行全文搜索,或者使用match(甚至match_phrase(查询(如果您有一些特定的搜索分析器想要使用(来搜索这些文档。在此处检查所有选项(全文搜索(。对于搜索,您可以使用http调用(Query DSL(或使用某种类型的客户端来执行此操作,例如elasticsearch-dsl。

一个简单的查询可能看起来像这样

GET /_search
{
"query": {
"query_string" : {
"default_field" : "customer",
"query" : "Akzo Nobel"
}
}
}

您将发布到包含文档的索引中。

注意:Elasticsearch 的搜索速度非常快,但在文档检索方面不太精通。但是,除非您要检索成千上万的文档,否则这不是问题。即使你打算做上述事情,你仍然可以使用 Elasticsearch 的 Scroll API

编辑:由于我看到您提到了指标,您还可以查看Kibana并使用它来创建仪表板,在其中显示客户的不同指标。这可能会节省您的时间,甚至不需要创建一个完整的 Web 界面,而且它是完全开源的。您可以在此处阅读有关如何在 elasticsearch 实例中使用 Kibana 的更多信息:Kibana 文档

最新更新