- html - 出于某种原因,IE8 对我的 Sass 文件中继承的 html5 CSS 不友好?
- JMeter 在响应断言中使用 span 标签的问题
- html - 在 :hover and :active? 上具有不同效果的 CSS 动画
- html - 相对于居中的 html 内容固定的 CSS 重复背景?
我一直遇到一个问题,但我无法在网上的任何地方找到答案。请不要将此标记为意见文章,因为它 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 月。
在使用来自不同来源和不同格式的数据的场景中,要成功实现自动化,请考虑以下几点:
通过不同来源提取数据
一个。 Windows powershell(作业调度)- 快速且有用,因为您使用 MS 技术 (OR)
您熟悉的任何其他编程语言(或)
通过 SQL 代理 T-SQL 查询(定义明确且结构良好)&将所有数据放在一个文件夹中
使用您喜欢的方法将数据转换为所需的数据集 -
一个。 Powershell(作业调度)- 最佳(或)
您想要的任何其他语言(或)
VBA for Excel/Access/CSV/文本格式&我建议将数据集转换成.txt格式
将这些数据集加载到 SQL server/DBMS 或任何地方以进行进一步操作,使用您的查询对数据集进行操作并设置作业如下:
一个。通过 SQL 代理通过 T-SQL 查询(定义明确且结构良好)(作业调度)- 输出为文本/excel 格式 (AND)
使用VBA在Excel中导入和创建数据透视表/分析/报告并通过作业调度程序进行调度
增值 -广泛使用 Powershell 来安排作业、嵌入 VBA 代码、与 SQL 服务器进行数据交易以及发送电子邮件(作为附件的警报/报告/关于成功或失败的通知等)。请记住在网络驱动器/服务器上提供足够的访问权限,这是成功的关键。
干杯
关于c# - 自动化 excel 以定期报告的方法,其中数据透视表不会削减它并且数据来自许多地方?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/34905585/
我想了解 Ruby 方法 methods() 是如何工作的。 我尝试使用“ruby 方法”在 Google 上搜索,但这不是我需要的。 我也看过 ruby-doc.org,但我没有找到这种方法。
Test 方法 对指定的字符串执行一个正则表达式搜索,并返回一个 Boolean 值指示是否找到匹配的模式。 object.Test(string) 参数 object 必选项。总是一个
Replace 方法 替换在正则表达式查找中找到的文本。 object.Replace(string1, string2) 参数 object 必选项。总是一个 RegExp 对象的名称。
Raise 方法 生成运行时错误 object.Raise(number, source, description, helpfile, helpcontext) 参数 object 应为
Execute 方法 对指定的字符串执行正则表达式搜索。 object.Execute(string) 参数 object 必选项。总是一个 RegExp 对象的名称。 string
Clear 方法 清除 Err 对象的所有属性设置。 object.Clear object 应为 Err 对象的名称。 说明 在错误处理后,使用 Clear 显式地清除 Err 对象。此
CopyFile 方法 将一个或多个文件从某位置复制到另一位置。 object.CopyFile source, destination[, overwrite] 参数 object 必选
Copy 方法 将指定的文件或文件夹从某位置复制到另一位置。 object.Copy destination[, overwrite] 参数 object 必选项。应为 File 或 F
Close 方法 关闭打开的 TextStream 文件。 object.Close object 应为 TextStream 对象的名称。 说明 下面例子举例说明如何使用 Close 方
BuildPath 方法 向现有路径后添加名称。 object.BuildPath(path, name) 参数 object 必选项。应为 FileSystemObject 对象的名称
GetFolder 方法 返回与指定的路径中某文件夹相应的 Folder 对象。 object.GetFolder(folderspec) 参数 object 必选项。应为 FileSy
GetFileName 方法 返回指定路径(不是指定驱动器路径部分)的最后一个文件或文件夹。 object.GetFileName(pathspec) 参数 object 必选项。应为
GetFile 方法 返回与指定路径中某文件相应的 File 对象。 object.GetFile(filespec) 参数 object 必选项。应为 FileSystemObject
GetExtensionName 方法 返回字符串,该字符串包含路径最后一个组成部分的扩展名。 object.GetExtensionName(path) 参数 object 必选项。应
GetDriveName 方法 返回包含指定路径中驱动器名的字符串。 object.GetDriveName(path) 参数 object 必选项。应为 FileSystemObjec
GetDrive 方法 返回与指定的路径中驱动器相对应的 Drive 对象。 object.GetDrive drivespec 参数 object 必选项。应为 FileSystemO
GetBaseName 方法 返回字符串,其中包含文件的基本名 (不带扩展名), 或者提供的路径说明中的文件夹。 object.GetBaseName(path) 参数 object 必
GetAbsolutePathName 方法 从提供的指定路径中返回完整且含义明确的路径。 object.GetAbsolutePathName(pathspec) 参数 object
FolderExists 方法 如果指定的文件夹存在,则返回 True;否则返回 False。 object.FolderExists(folderspec) 参数 object 必选项
FileExists 方法 如果指定的文件存在返回 True;否则返回 False。 object.FileExists(filespec) 参数 object 必选项。应为 FileS
我是一名优秀的程序员,十分优秀!