gpt4 book ai didi

c# - 自动化 excel 以定期报告的方法,其中数据透视表不会削减它并且数据来自许多地方?

转载 作者:行者123 更新时间:2023-11-30 21:52:18 25 4
gpt4 key购买 nike

我一直遇到一个问题,但我无法在网上的任何地方找到答案。请不要将此标记为意见文章,因为它 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上完成自动化,以及如何以程序化的方式进行。我不是要书籍、图书馆或第 3 方工具或其他资源。我正在寻求一种解决编码难题的方法,因为我一直在处理 100 行代码,并且相信必须有一种更直接的方法。

最佳答案

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

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

  1. 通过不同来源提取数据

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

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

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

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

    一个。 Powershell(作业调度)- 最佳(或)

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

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

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

    一个。通过 SQL 代理通过 T-SQL 查询(定义明确且结构良好)(作业调度)- 输出为文本/excel 格式 (AND)

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

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

干杯

关于c# - 自动化 excel 以定期报告的方法,其中数据透视表不会削减它并且数据来自许多地方?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/34905585/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com