我有一个excel电子表格,大约有300,000行和100列
我需要在此电子表格上执行各种功能,并在此电子表格之外创建大约3000个其他电子表格,这些电子表格明显较小
对于每一个创建的电子表格我将需要有一个单独的powerpoint文件,将有一个自动生成的图形
我已经做了很多VBA编程,但我有点迷失了这个项目
1.如果我把数据转储到一个mysql文件中,我处理任务会不会更容易?
1.在VBA Excel中完成所有这些操作是否可行?
1.有没有可能很容易地通过编程将图表从excel添加到powerpoint中?或者也许我应该对图表使用不同的解决方案?
4条答案
按热度按时间xtupzzrd1#
1.这在很大程度上取决于你打算如何处理数据。如果你打算在Excel中编写代码,那么把它留在Excel中会更有意义。话虽如此,我还是会把数据转储到CSV(逗号分隔)中,以便用另一种工具(如Python)进行进一步处理。
1.只要有足够的时间和金钱,任何事情都是可行的。如果你像大多数其他程序员一样,你没有太多的时间和金钱,所以你希望最有效的解决方案,或者接近它。如果是我,我会用Python编写代码,从CSV文件读取数据,执行所有必要的操作,并将3000个独立的输出集保存为单独的CSV文件,可以导入回Excel。
1.从VBA创建和操作图表可能很棘手。我会使用Matplotlib这样的Python库来生成所有图形输出,这些图形输出将作为PNG图像保存到磁盘上,可以插入到PowerPoint演示文稿中。
Python在这里只是作为一个例子提到,你应该使用你觉得最熟悉的工具;然而,编程处理数据的概念(不是通过相互连接的单元格引用和公式,再加上一点VBA来复制工作表等等)仍然适用,这将是你在这里前进的最佳方式。2我已经做了大量你所描述的工作。3把数据转换成CSV格式,然后用代码处理数据。
sh7euo9m2#
看看开源统计系统“R”,它非常擅长从真实世界的数据集通过编程生成图表。
http://www.r-project.org/
fdbelqdn3#
这在所有方面都是可行的,但是VBA可能会带来太多的开销,因为它在打开和关闭3000个电子表格和演示文稿的Excel和PowerPoint示例时需要大量的操作。如果它是一次性的解决方案,并且您只需要执行一次,VBA当然可以快速开发,所以你可以只通过使用对象模型来保存很多前期费用。另一个选择是从C#或VB.NET中的互操作应用程序中完成这一操作,在那里你可以对你的环境有更多的控制,比如垃圾收集。
然而,如果你使用的是Excel 2007/2010(我认为你是因为300 k行),我会做一些不同的事情。我会在VBA中对主XLSX执行calc例程,然后使用Open XML处理和创建3000个电子表格和带有图表的演示文稿。(注意:* 我不会在主XLSX上使用Open XML,因为它实际上并不呈现内置计算-您仍然需要打开XLSX来“水合”电子表格-所以VBA在这种情况下会更好 *)。
如果您是Open XML的新手,有很多东西需要预先学习,因此可能不值得花这么多精力。但是如果您确实想了解或已经了解Open XML,像this这样的文章非常有帮助,这是一个很好的起点(因为它也处理图表)。但是您也可以使用Open XML SDK上的 Package 器,如Simple OOXML,这对于入门非常好。
cgh8pdjw4#
我不能回答2和3,但是关于1:根据您的问题,我绝对建议您不要这样做......当然,您并没有确切地解释需要对数据执行什么类型的操作,所以很可能我在这里是错的。
您的情况让我想起了关于正则表达式的一句话:“有些人,当他们遇到一个问题时,会立即尝试使用正则表达式来解决它。现在他们有两个问题”。您不希望出现额外的问题。
如果你必须使用数据库来做这件事(仅仅是因为在Excel中做这件事性能不够),我会坚持使用微软的一些东西,比如Access或SQL Server,这可能会为你节省一些麻烦。