在Excel中是否可以:通过命令行打开XLS、加载导入CSV数据、打印为PDF、关闭文档?

在Excel中是否可以:通过命令行打开XLS、加载导入CSV数据、打印为PDF、关闭文档?,excel,vba,Excel,Vba,认为要解决我遇到的问题,这是最快的解决方案: 在该文件上生成自定义CSV文件(这已经通过Perl完成) 通过脚本语言通过命令行打开XLS文档(客户端已经在这个管道中运行了一些Perl脚本) 写入VBA或记录执行以下加载的宏: 将CSV文件中的数据导入报告模板 通过PDF驱动程序将文件打印到固定位置,使用CSV中的数据命名文件 关闭XLS文件 那么,这是否可以通过Excel宏实现,如果不可以,是否可以通过VBA实现--谢谢 注意:看来我无论如何都必须要有一份MS Office的副本,所以这

认为要解决我遇到的问题,这是最快的解决方案:

  • 在该文件上生成自定义CSV文件(这已经通过Perl完成)
  • 通过脚本语言通过命令行打开XLS文档(客户端已经在这个管道中运行了一些Perl脚本)
  • 写入VBA或记录执行以下加载的宏:
    • 将CSV文件中的数据导入报告模板
    • 通过PDF驱动程序将文件打印到固定位置,使用CSV中的数据命名文件
    • 关闭XLS文件
那么,这是否可以通过Excel宏实现,如果不可以,是否可以通过VBA实现--谢谢

注意:看来我无论如何都必须要有一份MS Office的副本,所以这比使用Visual Studio Tools for Office(VSTO)要快得多。报告模板将放在服务器上,这样最终用户可以构建任意多的报告,通过使用演示CSV文件打印PDF进行“测试”,并在完成后导入/嵌入marco或VBA。我查看了Jasper报告,但最终用户在报告中放置了特殊的静态文本和分组,我认为这样他们就可以根据自己的需要构建报告,然后实现自动化。我提出的这两个问题以及由此产生的评论/反馈都与此问题有关:

问题焦点:同样,问题的焦点是这是否可以通过Excel marcos实现,如果不是宏VBA,以及这种方法是否存在任何重大问题;例如,我知道这会很“慢”,因为每个作业都会加载Excel,但服务器上有16GB的ram,根本没有使用它。因为我必须在服务器上安装office的副本,所以这是一种更快的方法


如果您有任何问题,请通过评论告诉我。

我想您可以从perl启动报告文件,然后在报告文件中使用宏自动查找要导入的最新csv文件。然后您可以处理和输出。因此,您只需要从perl启动带有嵌入宏的适当excel文件,然后让excel和VBA接管。

+1谢谢,我认为它可以工作,但只是想仔细检查一下。只需注意一点:excel宏是VBA,无论是录制的还是手写的(与Access不同,Access有独特的宏“语言”和VBA)@RolandTumble:+1是的,我知道,但你是对的,我的理解不清楚,这可能会误导其他人阅读本文;事实上,我已经在这里发布了我的半解决方案: