c# - 在数据透视表无法削减并且数据来自许多地方的情况下,如何自动化地按计划进行报告?

标签 c# sql-server excel vba automation

我一直遇到一个问题,但在网上找不到答案。请不要将此标记为评论文章,因为它 100% 不是。

我有一个相当复杂的 Excel 报告,需要创建然后自动化。我的数据以 CSV、制表符分隔、json 和 .xls 的形式放置在 ftp 站点上。我还需要导入 SQL Server 上的数据。一旦我获得数据,我必须将其组织起来,并对其执行指标(这意味着它不像拖放到单个 Excel 文件中那么简单)。

目前,我一直在使用 VBA 将大部分数据导入到 MS Access 中,然后进行复杂的查询以获取大部分我想要的数据,然后通过链接 excel 中的查询并使其自动化,将其移植到 excel通过调用文件并指定宏来更新并从计划任务导入 Access/Excel。

这不仅很草率,而且还让人感觉不专业,好像随时都会对我造成打击。

有没有更好/更干净/更直接/更清晰/更安全的方法来做到这一点?

我知道 C# 控制台应用程序的想法,但我找不到任何好的教程来取得足够的进展来完成任何事情。

将所有数据本地化到一台服务器中是不可能的,除非我编写脚本从 ftp 站点执行此操作

我知道很多程序员都反对Access,反对VBA。有些人有优点,有些人只是巨魔。请发布您在自动化 Excel 报告方面的经验,以获得良好的2016 年解决方案。现有的所有文档都是 2007 年及之前的,并且找不到好的现代答案,否则人们试图声称购买他们的库/插件是唯一的解决方案(那些人试图把蹩脚的代码塞进你的喉咙让我感到恶心)。

我了解互操作,了解 openxml 和 IIS,但我没有在网上找到关于如何实现我的目标的很好的示例,而且我什至不确定该信息是否是最新的。

总而言之,您/您将如何自动化制作比数据透视表更精细的 Excel 报告,并且数据按计划来自许多来源?有没有人有一个好的 2016 年示例,该示例还没有过时或仍在 XP 上运行(XP 是一个很棒的操作系统,但现在是时候继续前进了)

最好使用 C#、VBA、SQL 等工具,并尽可能少地使用外部库和插件

谢谢

注意:要求我们推荐或查找书籍、工具、软件库、教程或其他场外资源的问题对于 Stack Overflow 来说是偏离主题的,因为它们往往会吸引固执己见的人答案和垃圾邮件。 -我问专业人士如何在excel上实现自动化,以及如何以程序化的方式进行。我并不是要书籍、图书馆、第三方工具或其他资源。我正在寻求一种解决编码困境的方法,因为我一直在编写 100 行代码,并且相信必须有一种更直接的方法。

最佳答案

长期使用以下方法,最近一次成功部署是在2015年12月。

在数据来自不同来源和不同格式的场景中,要成功实现自动化,请考虑以下几点:

  1. 通过以下方式从不同来源提取数据

    a. Windows powershell(作业调度)- 快速且有用,因为您使用 MS 技术 (OR)

    b.您熟悉的任何其他编程语言(或)

    c.通过 SQL 代理 T-SQL 查询(定义良好且结构良好) &将所有数据放在一个文件夹中

  2. 使用您喜欢的方法将数据转换为所需的数据集 -

    a. Powershell(作业调度)-最佳(OR)

    b.您想要的任何其他语言(或)

    c. Excel/Access/CSV/文本格式的 VBA &我建议将数据集转换为.txt格式

  3. 将这些数据集加载到 SQL Server/DBMS 或其他地方进行进一步操作,使用查询对数据集进行操作并设置作业如下:

    a.通过 SQL 代理通过 T-SQL 查询(定义良好且结构良好)(作业调度)- 输出为文本/Excel 格式(AND)

    b.使用VBA在Excel中导入和创建数据透视表/分析/报告,并通过作业调度程序进行调度

  4. 增值 - 广泛使用 Powershell 来安排作业、嵌入 VBA 代码、与 SQL Server 进行数据事务以及发送电子邮件(警报/报告作为附件/有关成功或失败的通知等)。请记住在网络驱动器/服务器上提供足够的访问权限,这是成功的关键。

干杯

关于c# - 在数据透视表无法削减并且数据来自许多地方的情况下,如何自动化地按计划进行报告?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/34905585/

相关文章:

c# - C#Winform编译错误

c# - ASP.NET MVC 2.0 - ViewModel 中的数据在发布后丢失

sql - 检查日期时间值是否溢出

excel - Excel中的表格到具有多个条件的一列

mysql - 如何使用php将excel中的数据导出到mysql?

c# - 我如何将这个 json 放入我的 c# 类中

C# Selenium webdriver mouseOver 再次

.net - 在 .NET 中使用 access (mdb) 链接表对抗 sql server 时,有什么可以替代 oledb 提供程序

sql-server - 查找 3930 SQL Server 错误的原因

c# - 如何使用 C# 隐藏 OpenXML 电子表格中的列?