首先,这个问题并不是要比较C#和VBA的总体优劣。我有一个项目,其中一些部分更适合用C#来完成,而其他部分似乎更适合使用VBA,我正在尝试找出如何最好地组织我的开发方式,因为我没有时间以几种不同的方式构建它,并查看哪个更快。我在这里发布这个问题,因为可能有关于一种语言的某些方面我没有考虑到,这显然使其成为这个项目更有吸引力的选择。
该项目:
1. 通过Web服务查询或刷新与此列表链接的Excel表格的内容,从Sharepoint列表中获取数据集。
2. 使用集合之间字段的不等关系将Sharepoint数据集连接到工作簿文件名的Excel数据集上。这将是多对多关系。
3. 对于每个匹配集中的每个工作簿,将其某些数据导出到不同文件夹中的新工作簿中,以便每个匹配集都在自己的文件夹中。
4. 将所有文件夹压缩成一个归档文件。
第1步似乎.NET或VBA都可以满足要求。第2步似乎更适合使用C#,因为它涉及到使用LINQ进行联接查询,而不是使用大量的VBA循环。第3步涉及Excel数据传输,这使得VBA成为更好的选择,因为我已经阅读了很多帖子,同意VBA比.NET Interop更适合Office操作。第4步似乎最好使用C#,因为我可以使用DotNetZip而不是依赖于shell命令。
但是,混合使用C#和VBA将比单一语言解决方案更不方便维护。所以我不确定应该采取什么方法。
该项目:
1. 通过Web服务查询或刷新与此列表链接的Excel表格的内容,从Sharepoint列表中获取数据集。
2. 使用集合之间字段的不等关系将Sharepoint数据集连接到工作簿文件名的Excel数据集上。这将是多对多关系。
3. 对于每个匹配集中的每个工作簿,将其某些数据导出到不同文件夹中的新工作簿中,以便每个匹配集都在自己的文件夹中。
4. 将所有文件夹压缩成一个归档文件。
第1步似乎.NET或VBA都可以满足要求。第2步似乎更适合使用C#,因为它涉及到使用LINQ进行联接查询,而不是使用大量的VBA循环。第3步涉及Excel数据传输,这使得VBA成为更好的选择,因为我已经阅读了很多帖子,同意VBA比.NET Interop更适合Office操作。第4步似乎最好使用C#,因为我可以使用DotNetZip而不是依赖于shell命令。
但是,混合使用C#和VBA将比单一语言解决方案更不方便维护。所以我不确定应该采取什么方法。