将数千个Excel文件中的数据提取到数据库中

时间:2016-08-17 07:32:11

标签: sql-server excel sharepoint

我们使用SharePoint 2013作为库来保存数千个Excel文件,几乎从不一致的格式化,以管理服务器上发生的项目。在这些可能格式化为表对象的某处是一组通用的服务器名称。

不知何故,如果不能在短期内改变这个过程,我需要从所有这些文件中提取数据,以确定有多少项目针对特定服务器。

我可以访问SQL Server 2016企业,并想知道PolyBase之类的东西是否可以帮助解决这个问题?我也想知道SSIS,但我不希望任何表看起来像另一个表。

其他工具可能是一种选择,但我不确定什么可以处理这种规模和种类。我认为每天更新数据就足够了,但即便如此,它仍然是一团糟。

如何将数千种不同的Excel表格拖入数据库?这甚至可能吗?

任何长期解决方案都不允许他们像excel一样进行格式化和注释。实际上不太可能采用。

1 个答案:

答案 0 :(得分:0)

你提前知道的越少,它就越难......

一些想法:

技术

  • 阅读允许阅读Excel的FROM OPENROWSET
  • 阅读linked server
  • 通过VBA使用Excel及其强大的功能来遍历所有Excel表格,打开它们,分析它们并填充适当的表格。在Excel中,你最了解你的凌乱数据......

目标结构

  • 您可以创建数千个表,每个表代表所有Excel文件中的一个表。您可以使用动态创建的SQL查询这些表(使用INFORMATION_SCHEMA的元数据)或考虑全文搜索
  • 您可以将每个工作表导入一个XML结构(SELECT * ... FOR XML PATH('...'))。在这种情况下,您需要一个目标表,其中包含Excel的路径和名称,工作表的名称以及数据的XML列。另一种方法是在一个XML上表示每个文件,并在那里包含所有表。尝试为所有数据定义通用命名。查询XML允许查询列而不知道它们的实际名称(XQuery with XPath using *)。
  • 如果您的Excel已经xlsx,您可以使用UNZIP打开它们并按现有XML

老实说:我认为任何工具都不会自动导入如此广泛的混乱......