从每周Excel转储创建Access数据库

时间:2017-06-19 10:23:10

标签: excel ms-access powerbi

我在Excel中创建每周快照(大约5-10MB),并且正在寻找创建每周组合Excel转储的本地数据库的最佳方法。 Excel似乎无法组合这些文件,因为它很快就无法在Excel中处理。

到目前为止,我已使用Excel使用添加的计算列和数据透视表计算每周文件中的一些重要数字,然后将其输出存储在另一个Excel文件中以创建报告。但是,我现在无法从所有每周Excel文件创建简单的报告/分析。

我如何创建一种本地数据仓库'那些每周Excel文件?例如。每周将Excel文件添加到包含数据/时间戳的组合数据库中? 我们也欢迎任何其他建议(也包括其他软件)。

从这个Access数据库中,我想在表格中添加一些计算并创建必要的数据,以便在Excel中生成报告(或者我可以使用PowerBI)。

2 个答案:

答案 0 :(得分:0)

我想到了一些策略:

  1. 创建Access数据库,并将每个Excel工作表中的链接表添加到数据库。链接到Excel文件有一些怪癖,因此您可能需要调整导入设置,但如果工作表的结构完全相同,那么您只需要执行一次。您可以在所有链接表之上创建UNION ALL查询,并像使用任何其他表/查询一样使用此查询。

  2. 如上所述创建链接表,但将它们INSERT用于单个Access表(或您选择的数据库中的另一个链接表)。这有更多移动部件,但如果链接在某些时候失败(例如Office升级,文件路径更改等),它具有保留数据的好处。

  3. 通过ADO在JScript / VBScript中发出直接INSERT INTO dbTable ... SELECT ... FROM excelfile语句。

  4. 将每个Excel文件加载到某些数据结构(例如ADO.NET DataTable,或二维数组)或序列化格式(JSON,XML);使用该中间结构/格式导入您选择的数据库。

答案 1 :(得分:0)

我将所有Excel文件放在一个公共文件夹中,然后使用VB导航到该文件夹​​并循环浏览所有文件以导入或链接它们。代码可以添加运行时,文件日期或文件名的时间戳 - 无论您要保留什么信息。作为帮助入门的示例,此函数导航到文件夹,获取文件列表,检查条件的文件名,然后将所选文件导入表。它还会删除在此过程中创建的任何导入错误文件,因为我知道每个表中都有一行不会导入。

<div ng-app="app" ng-controller="Ctrl" style="padding:10px">
   <h2>Value as numeric</h2>
   Comment: Everything is as expected<br />
   <a href="#" editable-radiolist="user.status_n" e-ng-options="s.value as s.text for s in ::statuses_n track by s.value">
       {{ showStatus_n() }}
   </a>

   <h2>Value as text</h2>
   Comment: In edit mode missing selection<br />
   <a href="#" editable-radiolist="user.status_t" e-ng-options="s.value as s.text for s in ::statuses_t track by s.value">
       {{ showStatus_t() }}
   </a>

   <h2>Value as text with space</h2>
   Comment: Throwing error<br />
   <a href="#" editable-radiolist="user.status_ts" e-ng-options="s.value as s.text for s in ::statuses_ts track by s.value">
       {{ showStatus_ts() }}
   </a>
</div>