使用.bat文件从.xls文件中读取值

时间:2009-06-20 05:43:33

标签: batch-file xls

我只想知道是否可以通过任何方式使用.bat文件从.xls文件中读取值。 例如:如果我有一个名为test.xls的.xls,它有两列 即“EID”,然后是“邮件ID”。现在我们将.xls的输入提供给EID名称。它应该提取与EID相对应的邮件ID并回显结果。

**EID**                  **MailID**
E22222                    MynameisA@company.com

E33333                    MynameisB@company.com

...
...

因此,通过上表,当我使用我的.bat文件作为E22222将输入提供给xls文件时,它应该读取相应的邮件ID为MynameisA@company.com,它应该回显该值。

所以我希望我能够表达我的疑问。请回复我,以获得更多的澄清。

谢谢和问候 麦迪

4 个答案:

答案 0 :(得分:3)

无法直接使用传统的.bat文件执行此操作。但是,您可以调查PowerShell,它旨在能够执行此类操作。 PowerShell可与现有的Windows应用程序(如Excel)很好地集成,并可提供您轻松完成此操作所需的工具。

快速搜索了example of reading Excel files from PowerShell

答案 1 :(得分:2)

您无法直接从批处理文件执行此操作。此外,要在脚本中操作使用Excel文件,您需要安装Excel。

您可以做的是将特定于Excel的内容包装在VBScript中并从批处理中调用。

答案 2 :(得分:1)

这在BAT中很难(非常接近不可能),特别是在使用原始XLS文件时,但即使在导出到CSV之后,很多也更容易使用脚本/编程语言(Perl,C,无论如何)这样做。

答案 3 :(得分:1)

您可以使用Alacon - Alasql数据库的命令行实用程序。

它适用于Node.js,因此您需要安装Node.js然后Alasql包:

要从Excel文件中获取数据,您可以使用以下命令:

> node alacon "SELECT VALUE [mail ID] FROM XLS('mydata.xls', {headers:true}) 
                   WHERE EID = ?" "E2222"

Fist参数是一个SQL-expresion,它使用标题和搜索数据从XLSX文件中读取数据 对于第二个参数值:“E22222”。该命令返回邮件ID值。